【Docker】コマンド一覧(コンテナの起動、削除、etc)

もくじ

イメージとコンテナの違い

まず、イメージとコンテナの違いをおさらいします。

イメージとは

イメージはコンテナを起動させるためのベースです。

コンテナで利用するファイル・設定は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

参考URL

Dockerコンテナの作成、起動〜停止まで - Qiita

Dockerイメージとコンテナの削除方法 - Qiita

コマンドでDockerコンテナを停止・削除、イメージの削除をする - Qiita