よく使うdockerコマンドとdocker-composeコマンドまとめ

Docker

備忘として、個人的によく使うdockerコマンドとdocker-composeコマンドをまとめていきます。追加修正があった場合は随時更新していきます。

dockerコマンド

docker images

Dockerイメージの一覧表示

docker ps

Dockerコンテナの起動中のみ表示
※停止中も含めて表示する場合は、オプション「-a」をつける
$ docker ps -a

docker rm [コンテナID]

Dockerコンテナの削除
※複数ある場合は、半角スペースで区切って指定可能

docker rmi [イメージ名 or イメージID]

Dockerイメージの削除
※削除対象のイメージを使用したコンテナが存在する場合(停止中のコンテナを含め)、削除できない。
その場合はまずコンテナを削除してから、イメージを削除する。

docker exec -it [コンテナ名] [コマンド]

起動中のDockerコンテナでコマンドを実行
「docker-compose exec ~」コマンドの場合は、引数にサービス名を指定するが、「docker exec ~」の場合はコンテナ名を指定する。存在しないコンテナ名を指定した場合は「Error: No such container: ~」というエラーが返ってくる。

例:sample-containerというコンテナにbashでログイン(この場合bashコマンドが使えるコンテナでないといけない)
$ docker exec -it sample-container bash

オプション「-it」を付けることでbashコマンドを入力できる状態になる。
オプション「-it」それぞれの説明は下記の通り。

オプション「-i」
– 「–interactive」でもよい。
– 英語の説明では「Keep STDIN open even if not attached」
– つまり、標準入力を開けておく、というオプション

オプション「-t」
– 「–tty」でもよい。
– 英語の説明では「Allocate a pseudo-TTY」
– つまり、疑似端末を割り当てる、というオプション

参考:https://docs.docker.com/engine/reference/commandline/exec/

docker system df

Dockerの容量状況の確認

docker builder prune

DockerのBuild Cacheの削除

docker inspect 【コンテナID】

Dockerコンテナの詳細を確認
コンテナのvolumeのホスト側の実態がどこにあるのかを確認したり、環境変数がどうなっているかを確認したり、ネットワークの設定を確認したりと、様々なコンテナの設定状況を確認したい時に使える。

docker-composeコマンド

docker-compose build

Dockerfileを元にDockerイメージ(コンテナではなく)をビルド

キャッシュを使わずにビルドする場合はオプション「–no-cache」をつける
$ docker-compose build –no-cache

docker-compose up

Dockerコンテナの起動
コマンド実行時のカレントディレクトリにdocker-compose.ymlがあること。

バックグラウンドで実行する場合はオプション「-d」をつける。
$ docker-compose up -d

docker-compose down

Dockerコンテナの停止&削除

docker-compose exec [サービス名] [コマンド]

起動中のサービスでコマンドを実行する
「docker exec ~」の場合はコンテナ名を指定していたが、「docker-compose exec ~」の場合はサービス名を指定する。
サービス名はdocker-compose.ymlを見て判断しているようなので、docker-compose.ymlのあるディレクトリで実行する。
また、存在しないサービス名やコマンドを指定しても、エラーを表示せずそのままコマンドが終了するようです。