Dockerコマンドチートシート
よく使うコマンドを纏めました。
以下はdocker runコマンドのオプションの説明です。
オプション | 意味 |
---|---|
-d | コンテナをバックグラウンド実行 |
--name |
コンテナ名指定 |
-p | ポートフォワーディング設定 |
–link | 別のコンテナへリンク |
-e | 環境変数設定 |
-v | ディレクトリ共有 |
コンテナ起動
docker start コンテナ名(コンテナID)
コンテナ停止
docker stop コンテナ名(コンテナID)
コンテナ削除
コンテナ削除します。複数コンテナを削除したい場合は、コンテナ名を半角スペースで区切って指定します。
docker rm コンテナ名
強制削除する場合は-fオプションを付けます。
docker rm -f コンテナ名
コンテナ名リネーム
docker rename コンテナ名 新しいコンテナ名
コンテナ作成
イメージからコンテナを作成するにはrunコマンドを使用します。
docker run -d イメージ名:タグ
タグを省略するとlatestを指定したことになります。
以下具体例です。
docker run -d webserver:0.1
-dはバックグラウンド実行です。
docker run -d --name hoge webserver:0.1
コンテナ名を指定する場合は--name
オプションを付けます。
docker run -d -p 80:80 webserver:0.1
ホストOSとコンテナでポートフォワーディングするには-p
オプションを付けます。
ホストOSのport:コンテナのportです。
docker run -d -p 80:80 --name コンテナ名 イメージ名:タグ
これでコンテナを作成してログインすることが出来ます。
コンテナを起動した状態で作成したい場合は-it -d
オプションを付けてコンテナ作成します。
docker run -it -d --name コンテナ名 イメージ名:タグ
これでコンテナ作成&起動した状態となります。この場合、execでログインしてexitで終了してもコンテナは停止されません。
ディレクトリ共有
docker run -it --name コンテナ名 -v c:\logs:/opt/tomcat/logs イメージ名:タグ名
/opt/tomcat/logs
配下(コンテナ)と`c:\logs配下(ホスト)がディレクトリ共有されます。
ディレクトリ共有は便利ですが、ホストOSのディレクトリに依存するため非推奨です。
エクスプローラ
コンテナ内で作業
docker exec -it コンテナ名 コマンド
execで指定したコンテナ名、指定したコマンドを実行します。具体的には以下のような感じです。
docker exec -it webserver /bin/bash
コンテナをイメージにする
コンテナをイメージ化するにはcommitコマンドを使います。一時的にイメージ化したい場合などの場合はDockerfileよりcommitコマンドを使います。タグを省略した場合は、latestになります。※コンテナ停止しておく必要があります
docker commit イメージ化したいコンテナ名 イメージ名:タグ
アタッチ
バックグラウンドで起動しているコンテナにアタッチします。コンテナが起動している状態でアタッチをします。
docker attach コンテナ名
コンテナ作業をexitするとコンテナは停止します。
デタッチ
Linuxでデタッチするには、control+p,control+qでデタッチできます。
コンテナは起動中のままバックグラウンドで起動された状態になります。
起動しているコンテナ一覧表示
起動しているコンテナ一覧表示します。
docker ps
出力例です。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 73341b88dc07 nginx "/docker-entrypoint.…" 35 minutes ago Up 34 minutes 0.0.0.0:80->80/tcp webserver
イメージがnginxで、webserverというコンテナ名のコンテナが起動していることがわかります。
停止しているコンテナも含めて一覧表示するには-a
オプションを付けます。
docker ps -a
コンテナからホストへコピー
index.htmlをホスト(Windowsなど)のカレントディレクトリにコピーする例です。
※コンテナ停止しておかないとエラーになります
docker cp コンテナ名:/var/www/html/index.html .
ホストからコンテナへコピー
ホストのカレントディレクトリにあるtomcat.zipをコンテナ内の/opt/配下にコピーする例です。
docker cp tomcat.zip コンテナ名:/opt/
Windowsコンテナにコピーする場合は、以下のように指定します。ホストOSのカレントディレクトリの全てのファイルを、コンテナのC:\tmp\配下にコピーしています。
docker cp . poc-test:C:\tmp\
イメージ検索
docker search イメージ名
Docker Hubから検索することが出来ます。以下具体例です。
docker search ubuntu
イメージ取得
イメージを取得するにはpull(引く)します。
docker pull イメージ名
Docker Hubから検索することが出来ます。以下具体例です。
docker pull ubuntu
イメージ一覧
イメージ一覧が表示されます。
docker images
イメージID一覧のみ表示するには-q
オプションを使用します。
docker images -q
イメージ削除
イメージを削除する際、コンテナが存在する場合は先にコンテナを削除してからでないとイメージを削除することが出来ませんので注意してください。
docker rmi イメージ名
具体的なコマンドです。
docker rmi httpd
Dockerfileからイメージ作成
Dockerfileからイメージを作成するにはbuildコマンドを使用します。カレントディレクトリにDockerfileが存在しているとします。
docker build -t sample .
-tオプションでイメージ名を指定します。省略することも可能です。以下省略例です。
docker build .
タグがlatestになるので明示したい場合は以下のように実行します。タグがv1.0の例です。
docker build -t sample:v1.0 .
Docker情報表示
docker info
ボリューム一覧
docker volume ls
ボリューム作成
docker volume create ボリューム名
ボリューム削除
docker volume rm ボリューム名
ポート確認
docker port コンテナ名
開放しているポートの確認をします。
未使用データ作成
未使用データ作成します。
docker system prune
-a
オプションを付けてタグづけなし、参照なしを問わず、未使用のイメージをすべて削除します。
docker system prune -a
未使用のボリュームを削除したい場合、--volumes
オプションも指定します。
docker system prune -a --volumes
コマンド一覧

Failed to get D-Bus connection: Operation not permitted
systemctlコマンドを使用する場合に「Failed to get D-Bus connection: Operation not permitted」エラーが出ました。
docker run
コマンド実行時に、/sbin/init
を実行する必要があるようです。
docker run -d --privileged コンテナ名 /sbin/init


KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント