あかんわ

覚えたことをブログに書くようにすれば多少はやる気が出るかと思ったんです

Dockerで頻繁に使うdockerコマンド

Dockerの使い方を調べたので、自分が頻繁に使うdockerコマンドを書き留めておきます。

使用しているDockerは、Docker for Mac 1.12.3です。

目次

docker runでDockerコンテナを作成・起動する

$docker run -d nginx                  

このコマンドで、Docker Hub*1にあるnginxのDockerイメージ*2から、nginxが動くDockerコンテナを作成し、デタッチモード*3で起動*4します。

--nameオプションでDockerコンテナに任意の名前を付ける
$docker run --name test_dock -d nginx

--nameオプションを使わずにDockerコンテナを作成した場合は、適当な名前が付けられます。

docker psで動作中のDockerコンテナの状態を確認する

$docker ps                        
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
ebc39278929e        nginx               "nginx -g 'daemon off"   4 minutes ago       Up 4 seconds        80/tcp, 443/tcp     infallible_agnesi
93e09e202513        nginx               "nginx -g 'daemon off"   5 minutes ago       Up 48 seconds       80/tcp, 443/tcp     test_dock
-aオプションで動いていないDockerコンテナの状態も確認する
$docker ps -a                  
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                  PORTS               NAMES
ebc39278929e        nginx               "nginx -g 'daemon off"   16 minutes ago      Up 11 minutes           80/tcp, 443/tcp     infallible_agnesi
93e09e202513        nginx               "nginx -g 'daemon off"   16 minutes ago      Up 11 minutes           80/tcp, 443/tcp     test_dock
33ff6cd31853        wordpress           "docker-entrypoint.sh"   4 days ago          Exited (0) 3 days ago                       wapuu_dock
560a00d4a51f        mysql:5.7           "docker-entrypoint.sh"   4 days ago          Exited (0) 3 days ago                       wordpress_db

docker startでDockerコンテナを起動する

$docker start test_dock

docker stopでDockerコンテナを停止する

$docker stop test_dock

docker execでDockerコンテナに接続してbashを操作する

$docker exec -it test_dock bash
root@93e09e202513:/# 
root@93e09e202513:/# ps ax
  PID TTY      STAT   TIME COMMAND
    1 ?        Ss     0:00 nginx: master process nginx -g daemon off;
    5 ?        S      0:00 nginx: worker process
    6 ?        Ss     0:00 bash
   12 ?        R+     0:00 ps ax
root@93e09e202513:/# exit
exit

※ Dockerコンテナへの接続で調べるとdocker attachコマンドを良く見かけるのですが、Dockerコンテナの作り方*5によってはシェルの操作が使えない場合があるようなので、今のところ自分は使っていません。

docker rmでDockerコンテナを削除する

$docker rm test_dock

参考記事

docs.docker.com

*1:Dockerイメージ等を共有できるレジストリサービス

*2:既に同じ名前のDockerイメージからDockerコンテナを作成したことがある場合はローカルに保存されているDockerイメージが使えるようです

*3:Dockerコンテナをバックグランドで起動するモード

*4:OSやデータベース等のDockerイメージではオプションで適切なパラメータを設定しないと起動しないDockerコンテナもあるようです

*5:docker runコマンドで作成した際に指定したオプションやパラメータ