Dockerメモ3
Dockerコンポーネント
- Docker エンジン:Docker本体のこと
- Docker コンテナ:Dockerエンジンが実行するコンテナのこと
- Docker クライアント:Dockerデーモンが提供する各種コマンドなどのIFのこと
- DockerコンテナはホストOS上で複数同時に起動することができる、ホストOSから見ると分離された名前空間として見える
コンテナの起動
- 例えば"/bin/bash"でコンテナを起動した後のプロンプトで"root@11450a5780f2"等と表示されるが、@の後ろはコンテナID
- hostnameはコンテナIDが自動的に設定されるが、
-h
オプションで設定することも可能 - コンテナをバックグラウンドで稼働させる場合は
-d
オプションを強する - 起動のコマンドは
docker start <container id>
でOK、起動後はdocker ps
で確認ができるが、バックグラウンドで動いている
コンテナのイメージ化
- 作成したコンテナをイメージ化することができる
docker commit <container id> <repository name>:<tag name>
--docker commit c7c2983acd46 local:test-run
こんな感じ- アプリケーションごとにコンテナを作成してイメージ化しておけば、必要な時に必要なものをすぐ実行可能な状態でコンテナの再利用をすることができる
docker images --no-trunc
で本来のイメージID64文字で表示が可能、通常は12文字。イメージIDのみ出力したい場合はdocker images -q
でOK
シェル変数にコンテナIDを入れると便利
abc=$(docker run -d --name centos-test -i -t centos:centos6.6 /bin/bash)
を実行すると、コンテナIDがabcに代入される- コンテナIDは長いので便利そう?
コンテナの停止
docker stop <container id>
でOK
コンテナのアタッチ
- 一度停止したコンテナは
docker start -i -a <コンテナID>
で再接続ができる -- iは標準入力を受け付けるオプション、-aはアタッチ - バックグラウンドで動作しているコンテナはそのまま
docker attach <container id>
でOK
コンテナとコンテナイメージの削除
docker rm <container id>
でコンテナは削除可能 --docker ps -a | awk '{print $1}' | xargs docker rm
でまとめて一括で消せる -- 起動中のコンテナは削除できないが、-f
オプションを付与することで強制的に削除可能docker rmi <Image id>
でコンテナは削除可能 --docker images | awk '{print $3}' | xargs docker rmi
でまとめて一括で消せる
コンテナの自動廃棄
docker run
コマンドに--rm
オプションを付与して起動すると、コンテナ停止時に自動的に廃棄される-d
オプションとはセットで利用できないので注意