🎉

Dockerコマンドまとめ

2021/06/26に公開

コンテナ操作

コンテナ起動

docker run [options] IMAGE

# 例: Apacheのコンテナを起動(8080番ポートでアクセス。)
docker run -p 8080:80 httpd:2.4.41

イメージからコンテナを作成して起動する。
イメージはなければ自動的にpullされる。

コンテナ停止

docker stop <container>

# 例: 複数コンテナの削除も可能
docker stop a11 b22 c3f

コンテナ一覧

docker ps

コンテナ一覧(停止しているコンテナも含む)

docker ps -a

コンテナを指定して削除

docker rm <container>

コンテナIDは全て入力する必要がないことがほとんど。
コンテナを一意に特定できれば部分一致で数文字の指定でOK。

コンテナを全て削除

docker rm $(docker ps -q)

コンテナに入る

docker exec -it <container> bash

# 例: コンテナIDの部分文字列を指定
docker exec -it 8cc bash

# 例: コンテナ名を指定
docker exec -it sample_web bash

# 例: フルパス指定も可能
docker exec -it 8cc /bin/bash

全て削除のコマンド自体は存在しない。
コマンド置換でコンテナIDの一覧を出力して削除する。

イメージ操作

イメージ一覧

docker images

イメージ削除

docker rmi <image>

# 例: イメージIDを指定して削除
docker rmi 789

Docker Compose

コンテナを複数に分けると使い回しやメンテナンスがしやすくなる反面、操作手順も増えてしまう。
Docker Composeを使うと複数のコンテナを連携して一度に操作できる。

サービス起動

docker compose up -d

docker-compose.ymlのあるディレクトリに移動して上記を実行。
「-d」を付けないと、フォアグラウンドで起動する。

サービス停止

docker compose down

サービス再起動

docker compose restart

その他コマンド

詳細確認

docker inspect <container|image>

コンテナやイメージの情報を確認できる。
JSONで詳細が出力される。

使用していないDockerオブジェクトの削除

docker system prune

使用していないイメージ、コンテナなど、ボリュームを除く※全てのDockerオブジェクトを削除してクリーンアップする。
※Docker 17.06.1 以上

使用していないDockerオブジェクトの削除(ボリュームも含む)

docker system prune --volumes

Docker 17.06.1 以上でボリュームも削除したい場合は、 --volumes フラグを使う。

Discussion