随時記述。
純粋にDockerだけの話。オーケストラレイヤの話は考えない。
対象
- Docker初心者
- 俺
本題
BUILD系
$ docker build -t [image]:[tag] .
頻度:★★★★★
- カレントディレクトリのDockerfileを元にイメージ作成を作成する。
-
-t
でタグ名を指定する。一応オプショナルだけど基本付ける。
$ docker build --build-arg HOGE=FUGA -t [image]:[tag] .
頻度:★★☆☆☆
- build時の変数を引き渡す。
- 予めDockerfile内で
ARG
で定義しておかないとエラーになる。ただ、http_proxy
の様な元々ある変数なら定義の必要ない。
RUN系
$ docker run [image]:[tag]
頻度:★★★★★
- コンテナを起動する。基本中の基本。
- tagを省略したら'latest'になるお
$ docker run --rm [image]:[tag]
頻度:★★★★★
- プロセス終了したらコンテナ削除。
$ docker run -it [image]:[tag] /bin/bash
頻度:★★★★★
- コンテナの中入る。デバッグに便利。
- bashじゃない場合(ashとか)もある。
- DockerfileのCMDが
/bin/bash
に上書きされる。CMDに指定したいコマンドはコンテナの中に入ってから実行すればいい。
$ docker run --entrypoint="/bin/bash" -it [image]:[tag]
頻度:★★★★☆
- DockerfileにENTRYPOINT指定してる場合はこれでコンテナ入れる。
$ docker run -e HOGE=FUGA [image]:[tag]
頻度:★★★☆☆
- 稼働時に環境変数を渡す。
$ docker run -env-file hoge.env [image]:[tag]
頻度:★★★☆☆
- 稼働時に指定したenvファイルを読み込む。
その他
全部頻度:★★★★★
$ docker images
- イメージ一覧表示
$ docker rmi [image]:[tag]
- 指定したイメージを削除
-
[image]:[tag]
はイメージIDでも可。
$ docker ps -a
- コンテナ一覧表示
-
-a
はオプショナル。付ければ動いてないプロセスも表示してくれる。
$ docker [system|image|container|network|volume] prune
- 使ってないやつ一括削除
-
system
: すべての停止中のイメージ、コンテナ、ネットワーク、ボリュームを一括削除 - それ他は指定したやつの使われてないのを一括削除