Skip to content

Docker コマンド実用チートシート

Docker は、開発者がアプリケーションとその依存パッケージをポータブルなイメージにパックし、一般的な Linux または Windows マシンに配布して仮想化を実現できるオープンソースのアプリケーションコンテナエンジンです。コンテナは完全にサンドボックス化され、相互にインターフェースを持ちません。

一般的な使用法

コンテナをバックグラウンドで起動する

docker run -d jenkins

対話型コンテナを起動する

docker run -it ubuntu bash

停止時に自動的に削除されるコンテナを起動する

docker run --rm ubuntu bash 

ポートマッピングを指定してコンテナを起動する

docker run -p 80:80 -d nginx 

名前付きコンテナを起動する

docker run --name mydb redis 

停止しているコンテナを起動する

docker start mydb 

コンテナを停止する

docker stop mydb

コンテナを起動し、メタデータを追加する

docker run -d \ label=traefik.backend=jenkins jenkins

イメージの構築 (Build Images)

カレントディレクトリの Dockerfile からイメージを構築する

docker build --tag myimage . 

キャッシュを使用せずにイメージを強制的に再構築する

docker build --no-cache . 

コンテナをイメージに変換(コミット)する

docker commit c7337 myimage 

未使用のイメージをすべて削除する

docker rmi $(docker images -q -f "dangling=true")

デバッグ (Debug)

実行中のコンテナにログインする

docker exec -it c7337 docker

実行中のデーモンコンテナのアクティビティログを表示する

docker logs -f c7337

コンテナの公開ポートを表示する

docker port c7337

ボリューム (Volumes)

ローカルボリュームを作成する

docker volume create --name myvol 

コンテナ起動時にボリュームをマウントする

docker run -v myvol:/data redis

ボリュームを削除する

docker volume rm myvol 

ボリュームを一覧表示する

docker volume ls

ローカルネットワークを作成する

docker network create mynet 

起動時にコンテナをネットワークに接続する

docker run -d --net mynet redis

コンテナを指定したネットワークに接続する

docker network connect mynet c7337 

コンテナをネットワークから切断する

docker network disconnect mynet c7337

コンテナ管理

実行中のコンテナを一覧表示する

docker ps

すべてのコンテナ(実行中および停止中)を一覧表示する

docker ps -a

コンテナのメタデータを検査する

docker inspect c7337

ローカルにあるすべての利用可能なイメージを一覧表示する

docker images

停止しているすべてのコンテナを削除する

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

特定のラベルを持つすべてのコンテナを一覧表示する

docker ps --filter label=traefik.backend

特定のメタデータを持つ実行中のコンテナをクエリする

docker inspect -f '{{ .NetworkSettings.IPAddress }}' c7337

説明

イメージ名

redis, jenkins, nginx

コンテナ名またはコミット ID

mydb  # コンテナ名 
c7337 # コミット ID