Dockerコマンドチートシート

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コマンドチートシート

コンテナ内で作業

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

コマンド一覧

docker
docker: The base command for the Docker CLI.

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
CentOS7のコンテナでsystemctlを使うための方法 - Qiita
概要dockerからCnetOS7のコンテナを起動し、 systemctl コマンドからサービスを制御しようとしたところ以下のエラーに遭遇しました。# systemctlFailed to g…

コメント

株式会社CONFRAGE ITソリューション事業部をもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む

タイトルとURLをコピーしました