Edited at

dockerコマンド一覧

よく使うdockerコマンド一覧


0) dockerコンテナを起動し、ログイン

docker run -i -t [イメージ名] /bin/bash

※-u [ユーザ名] で起動時のユーザを指定できる


1) dockerイメージをtar.gz形式で保存する

docker save [イメージ名] > [ファイル名].tar.gz


2) tar.gz形式のdockerイメージを取り込む

docker load < [ファイル名].tar.gz


3) dockerイメージのコピー(タグ名変更)

docker tag [対象イメージ名:タグ] [変更後イメージ名:タグ]


4) 起動中コンテナにログイン

docker exec -it [コンテナID] bash


5) 起動中コンテナにホストからファイルコピー

docker cp [ホストファイルパス] [コンテナID]:[コンテナコピー先パス]


6) 起動中コンテナをイメージとして保存

docker commit [編集したコンテナID] [保存するコンテナ名]


7) コンテナに外部からアクセスする(ポートフォワーディング)

docker run -p [外部ポート]:[コンテナポート]

※-pオプションは複数指定可能


8) dockerfileからイメージを作成

docker build -t [イメージ名]:[タグ名] [Dockerfileのあるディレクトリパス]


9) statusがexitedなdockerイメージのみ一括削除

docker rm $(docker ps -a --filter 'status=exited' -q)


10) コンテナのボリュームをホストにマウントする

docker run -v [ホストボリュームパス]:[コンテナ内パス] [コンテナイメージ]


11) コンテナを開始/停止/再起動

docker start/stop/restart [コンテナ名]

ホスト上の全コンテナを一括停止したい場合は

docker stop $(docker ps -q)


12) コンテナイメージをregistryにpush

docker push [コンテナ名]


13) docker registry上のイメージ一覧を確認

curl https://[レジストリドメイン名]:5000/v2/_catalog

自己証明書など、SSLの設定が正しくない場合エラーとなる。

Error例

curl: (60) Peer's certificate issuer has been marked as not trusted by the user.

More details here: https://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
of Certificate Authority (CA) public keys (CA certs). If the default
bundle file isn't adequate, you can specify an alternate file
using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
the bundle, the certificate verification probably failed due to a
problem with the certificate (it might be expired, or the name might
not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
the -k (or --insecure) option.

この時は、--cacertオプションでcrtファイルのパスを指定する。

curl --cacert [crtファイルのパス] https://[レジストリドメイン名]:5000/v2/_catalog

※以下でErrorの場合は、sudoで実行してみる。

curl: (77) Problem with the SSL CA cert (path? access rights?)

また、暫定対処で-kオプションをつける方法もある。

curl -k https://[レジストリドメイン名]:5000/v2/_catalog


14) docker registry上のイメージのタグを確認する

v2/_catalogコマンドでタグも確認できれば良いのだが、タグの確認は、リポジトリを指定して以下の通り実行。

curl https://[レジストリドメイン名]:5000/v2/[リポジトリ名]/tags/list

{"name":"[リポジトリ名]","tags":["latest"]}


15) コンテナを自動再起動

ホスト再起動や意図しないコンテナの停止の時に、自動的に再起動してくれるオプション。

docker stopコマンドで明示的に終了した場合は除く、

docker run --restart=always

alwaysの代わりに on-failure[:max-retries] で、異常終了時のリトライ回数指定での再起動も設定できる。


16) コンテナ名の変更(rename)

docker runオプションの --name で指定したコンテナ名を変更できる

docker rename [変更前] [変更後]


17) 各種コンテナ情報の取得

docker inspect

IPアドレス、ポート、マウント情報など


18) 通常ユーザでdockerコマンドを使えるようにする

dockerグループに、通常ユーザを追加するコマンド

sudo usermod -a -G docker [ユーザ名]