もくじ
イメージとコンテナの違い
まず、イメージとコンテナの違いをおさらいします。
イメージとは
イメージはコンテナを起動させるためのベースです。
コンテナで利用するファイル・設定はDockerイメージとして保存でき再利用が可能です。Docker Hubでは、多くのイメージ(30万以上)が公開されています。
コンテナとは
コンテナはOSレベルの仮想化を行います。イメージから作られ、実行される仮想環境です。
プロジェクトAとプロジェクトBがあったとして、両方でDockerを利用する場合、同じイメージを利用しつつそれぞれコンテナを分けて使う、というような利用が可能です。
イメージ
docker images(イメージの確認)
Dockerにあるイメージを確認できます。
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE mysql 5.7 b84d68d0a7db 3 months ago 448MB
docker rmi(イメージの削除)
$ docker rmi イメージID
ただし、コンテナが存在していると削除できません。
コンテナ
docker ps(稼働中のコンテナの確認)
稼働中のコンテナのみ表示します。停止中は表示されません。
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
docker ps -a(すべてのコンテナの確認)
-a
オプションをつけると、稼働中停止中関係なく全てのコンテナを表示します。
$ docker ps -a
docker start(コンテナの起動)
docker ps
で事前にコンテナID調べておきます。
$ docker start コンテナID
たとえば、以下のような流れになります。
$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 61a6c67be6f0 nginx "/docker-entrypoint.…" 3 weeks ago Exited (255) 7 days ago 0.0.0.0:80->80/tcp test
↓コンテナIDをコピーしてペーストする。
$ docker start 61a6c67be6f0
コンテナを確認するとSTATUSがUP
となり起動しています。
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 61a6c67be6f0 nginx "/docker-entrypoint.…" 3 weeks ago Up 3 seconds 0.0.0.0:80->80/tcp test
docker stop(コンテナの停止)
起動と同様にコンテナIDを確認します。
$ docker stop コンテナID
先ほどの例を見ると以下のようになります。
$ docker stop 61a6c67be6f0
するとSTATUSがExited
となり、停止しているのが確認できます。
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 61a6c67be6f0 nginx "/docker-entrypoint.…" 3 weeks ago Exited (0) 9 seconds ago 0.0.0.0:80->80/tcp test
docker rm (コンテナの削除)
$ docker rm コンテナID
複数指定もできるようです。
$ docker rm 61a6c67be6f0 2f89da2ed794