Docker イメージの操作
はじめに
前回はDocker/Kubernetes 実践コンテナ開発入門の概念とDockerを使った一連の流れをまとめたので、今回はイメージの操作をまとめます。 gihyo.jp
Dockerイメージの操作
Dockerイメージとは?
イメージのビルド
下記のコマンドはDockerfileを元にDockerイメージを作成するコマンドです。
docker image build -t イメージ名[:タグ名] Dockerfile配置ディレクトリのパス
- -tはほぼ必須
- image buildはDockerfileが必要
-fオプション
docker image build -f Dockerfile-test -t example/echo:latest .
- デフォルトでは
Dockerfile
と言う名前のファイルを探すが、任意の名前をつける場合は-f
をオプションをつけて名前の指定を行う
-pullオプション
docker image build -pull=true -t example/echo:latest .
- FROMで指定したベースを毎回リモートから取得する。
- 逆に言うと
--pull
を指定しないと一度取得したDockerイメージはホストから参照される。 - ビルド時間は遅くなる。
イメージの検索
以下のコマンドはDocker Hubのレジストリに登録されているリポジトリを検索するコマンドです。
docker search [option] 検索キーワード
イメージの取得
下記はDockerレジストリからDockerイメージを取得するコマンドです。
イメージをダウンロードするのでそのままDockerコンテナとして利用することができます。
docker image pull [options] リポジトリ名[:タグ名]
- リポジトリ名とタグ名はDocker Hubに存在するものを指定
- タグを省略した場合はデフォルトタグが利用される
イメージの一覧
Dockerホストに保持されているイメージの一覧を表示します。
リモートからpullしてきたイメージ、docker image buildでビルドしたイメージがDockerホストのディスクに保持されます。
docker image ls [options] [リポジトリ[:タグ]]
結果
docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE gihyodocker/concreatetest latest 624fdc0f159e 36 hours ago 4.41MB
- IMAGE IDはイメージのIDの為、コンテナのIDとは別物
- イメージとコンテナの管理は別々に管理されていると覚えるとOK
イメージのタグ付け
ビルドする際やプルする際にはリポジトリ名の後に:[タグ名]
を指定していました。
逆になぜタグ名を指定するかと言うとDockerイメージを識別しやすくするためです。
リソース番号をつけてイメージを管理しやすくするために使われます。
docker image tag 元イメージ名[:タグ] 新イメージ名[:タグ]
例)example/echoのlatestタグを0.1.0へタグを新しくつける場合
docker image tag example/echo:latest example/echo:0.1.0