コンテナライフサイクルとdocker containerコマンド
コンテナライフサイクル
実行中
docker container run イメージ名:タグ
直後。CMDやENTRYPOINTを実行する。停止
docker container stop コンテナ名orコンテナID
で停止させるか、コンテナで実行されているアプリが正常終了・異常終了した状態。
コマンドラインツールなどはすぐ終了するため、コンテナもすぐにこの状態になる。サーバーアプリなどは実行され続けるため、異常終了しない限り停止状態にはならない。破棄
停止状態のコンテナはディスクにずっと残るが、docker container rm コンテナ名orコンテナID
で削除できる。
docker containerコマンド
コンテナを起動する。
$ docker container run -t -p 9000:8080 イメージ名:タグ名
-pでホストの9000ポートとコンテナの8080ポートをフォワーディングしている
対話的に使用する。
$ docker container run -it alpine:latest
-iで標準入力を繋いだままにする
-tで擬似端末を有効にする
コマンドラインツールとしてコンテナを利用する。
$ echo '{"version":100}' | docker container run -i --rm jq '.version'
--rmでコンテナが停止したとき自動で削除される。
実行中コンテナでコマンド実行。
$ docker container exec -it コンテナ名 bash
runと同じく-itでシェル経由で操作。
一覧を表示する。
$ docker container ls --filter "name=コンテナ名" -q
--filterで表示するコンテナを絞り込む。
-qでコンテナIDだけを表示。
ファイルをコピー
docker container cp コピー元 コピー先
コンテナ内のパスを指定するにはコンテナ名orコンテナID:パス