Dockerコマンド(よく使いそうなもの)

状態の確認

コンテナの状態を確認。

takatoh@apostrophe $ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                  PORTS               NAMES
8f048cac2336        hello-world         "/hello"            2 days ago          Exited (0) 2 days ago                       vigilant_varahamihira

一昨日のエントリで走らせた hello-world のコンテナが残っている。vigilant_varahamihira っていう名前になってるけど、これは Docker かテキトーにつけた名前だろう。

イメージの確認は docker image ls

takatoh@apostrophe $ sudo docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              bf756fb1ae65        4 months ago        13.3kB

docker iamges でも同じ結果が得られる。

takatoh@apostrophe $ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              bf756fb1ae65        4 months ago        13.3kB

Dockerイメージの取得とコンテナの起動・停止

Docker Hub からイメージを取得して、コンテナ起動してみる。

イメージの取得は docker pull

takatoh@apostrophe $ sudo docker pull nginx

これで nginx イメージの取得ができた。確認してみる。

takatoh@apostrophe $ sudo docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              602e111c06b6        11 days ago         127MB
hello-world         latest              bf756fb1ae65        4 months ago        13.3kB

コンテナの起動は docker run

takatoh@apostrophe $ sudo docker run -d --name nginx-container -p 8181:80 nginx

オプションの意味はつぎの通り:

  • -d コンテナをバックグラウンドで起動
  • --name コンテナ名を指定
  • -p ホストとコンテナ間のポートフォワード設定。-p <ホスト側ポート>:<コンテナ側ポート>

コンテナの状態を確認すると、nginx-container という名前で起動している(STATUS が Up になっている)のがわかる。

takatoh@apostrophe $ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                  PORTS                  NAMES
fc4887604124        nginx               "nginx -g 'daemon of…"   4 minutes ago       Up 4 minutes              0.0.0.0:8181->80/tcp nginx-container
8f048cac2336        hello-world         "/hello"                 2 days ago          Exited (0) 2 days ago                          vigilant_varahamihira

ブラウザで http://localhost:8181/ にアクセスすると Nginx のデフォルトページが表示された。

コンテナの停止は docker stop

takatoh@apostrophe $ sudo docker stop nginx-container

コンテナの状態を確認すると、STATUS が Exited になっている。

takatoh@apostrophe $ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                        PORTS               NAMES
fc4887604124        nginx               "nginx -g 'daemon of…"   8 minutes ago       Exited (0) About a minute ago                     nginx-container
8f048cac2336        hello-world         "/hello"                 2 days ago          Exited (0) 2 days ago                             vigilant_varahamihira

コンテナとイメージの削除

コンテナを削除するには docker container rm

takatoh@apostrophe $ sudo docker container rm nginx-container

イメージを削除するには docker image rm

takatoh@apostrophe $ sudo docker image rm nginx
takatoh@apostrophe $ sudo docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              bf756fb1ae65        4 months ago        13.3kB

nginx イメージが削除されている。