LoginSignup
55
61

More than 5 years have passed since last update.

dockerチートシート

Last updated at Posted at 2016-06-13

参考:プログラマのためのDocker教科書 インフラの基礎知識&コードによる環境構築の自動化 : 阿佐 志保(著), 山田 祥寛(監修)

Dockerの情報確認

Dockerのバージョン確認 (docker version)

$ docker version

Dockerの実行環境確認 (docker info)

コンテナの数、イメージの数、ストレージドライバの種類、OS、Dockerホスト名などが確認できる。

$ docker info

イメージに関する操作

イメージのダウンロード (docker pull)

$ docker pull [オプション] イメージ名[:タグ名]

CentOSのバージョン7のイメージをダウンロード

$ docker pull centos:7

CentOSのすべてのタグのイメージ

$ docker pull -a centos

取得したイメージの一覧表示 (docker images)

$ docker images [オプション] [リポジトリ名]

イメージの詳細確認 (docker inspect)

$ docker inspect [オプション] コンテナ識別子またはイメージ識別子 [コンテナ識別子またはイメージ識別子]

イメージID、作成日、Dockerのバージョン、イメージの作成者、CPUのアーキテクチャなどがJSON形式で表示される。

centosイメージの詳細を確認

$ docker inspect centos

centosイメージのOSの値を取得

$ docker inspect --format="{{ .Os}}" centos

centosイメージのContainerConfigのImageの値を取得

$ docker inspect --format="{{ .ContainerConfig.Image }}" centos

イメージのタグ設定 (docker tag)

$ docker tag <元REPOSITORY:TAG> <新REPOSITORY:TAG>

httpd:2.4というイメージにユーザ名userがtest:1.0というタグをつける場合

$ docker tag httpd:2.4 user/test:1.0

Docker Hub上のイメージの検索 (docker search)

$ docker search [オプション] 検索キーワード

お気に入り件数STARSの件数が、30件以上のcentosイメージだけを検索

$ docker search --stars=30 centos

イメージの削除 (docker rmi)

イメージ名にはREPOSITORYまたはIMAGE IDを指定する。複数のイメージを同時削除の場合はスペース区切り

$ docker rmi [オプション] イメージ名 [イメージ名]

Docker Hubへのログイン (docker login)

$ docker login [オプション] [サーバ名]

コマンド後、ユーザ名、パスワード、メールアドレスを入力し、ログインできる。

$ docker login
Username: <登録したユーザ名>
Password: <登録したパスワード>
Email: <登録したメールアドレス>
Login Succeeded

イメージのアップロード (docker push)

$ docker push イメージ名[:タグ名]

*事前にDocker Hubにログインしておくこと

Docker Hubからのログアウト (docker logout)

$ docker logout [サーバ名]

コンテナに関する操作

コンテナの生成&起動 (docker run)

$ docker run [オプション] イメージ名[:タグ名] [引数]

centosイメージをもとにしてtest1という名前でコンテナを生成&起動、コンテナ内で/bin/calコマンドを実行。

$ docker run -it --name "test1" centos /bin/cal

-it : コンソールに結果を出す。(-i : コンテナの標準入力を開く、 -t : tty(端末デバイス)を使う
--name "test1" : コンテナにtest1という名前を付ける。省略するとランダムな名前が自動設定される。

コンテナのバッググラウンド実行 (-d)
centosもとにしてコンテナを生成&起動、コンテナ内でlocalhostに対してpingをバッググラウンドで実行。

$ docker run -d centos /bin/ping localhost

対話的にコマンドを実行した場合コンテナIDが表示される。
docker logs -t <コンテナID> によってコンテナのログを確認できる
pingコマンド実行後もコンテナは残る。自動的に削除する場合は--rmオプションを指定する。

コンテナのネットワーク設定 (-p, --dns, --mac-address, --add-host)
①コンテナのポート番号80をホストOSのポート番号をマッピングする場合(-p)
②DNSサーバを指定する場合 (--dns)
③MACアドレスを指定する場合 (--mac-address)
④ホスト名とIPアドレスを指定する場合 (--add-host)

$ docker run -d -p 8080:80 httpd              ----①
$ docker run --dns=192.168.1.1 httpd              ----②
$ docker run -it --mac-address="92:d0:c6:0a:29:33" centos              ----③
$ docker run -it --add-host=test.com:192.168.1.1 centos              ----④

リソースを指定してコンテナを生成&実行 (--cpu-shares, --memory)
CPUやメモリなどのリソースを指定する

$ docker run --cpu-shares=512 --memory=512m centos

--cpu-shares:CPUの使用の配分を指定 (全体で1024なので例の場合50%)
--memory:使用するメモリの上限(単位はb,k,m,g)

ディレクトリの共有 (-v)

$ docker run -v /c/Users/asa/WebPage:/var/www/html httpd

ホストの/c/Users/asa/WebPageをコンテナの/var/www/htmlと共有し実行

コンテナの環境変数を設定して実行(-e)

$ docker run -it -e foo=bar centos /bin/bash

コンテナの環境変数をファイルで設定して実行(--env-file)

$ docker run -it --env-file=env_list centos /bin/bash

[env_listの内容]
hoge=fuga
foo=bar

作業ディレクトリを指定して実行(-w)

$ docker run -it -w=/tmp/work centos /bin/bash

稼働コンテナの一覧表示 (docker ps)

$ docker ps [オプション]

コンテナの稼働確認 (docker stats)

$ docker stats [コンテナ識別子]

apacheとnginxという名前のコンテナの稼働状況を確認

$ docker stats apache nginx

コンテナの起動 (docker start)

$ docker start [オプション] コンテナ識別子 [コンテナ識別子]

コンテナの停止 (docker stop)

$ docker stop [オプション] コンテナ識別子 [コンテナ識別子]

コンテナの再起動 (docker restart)

$ docker restart [オプション] コンテナ識別子 [コンテナ識別子]

コンテナの削除 (docker rm)

$ docker rm [オプション] コンテナ識別子 [コンテナ識別子]

コンテナの中断,再開 (docker pause, docker unpause)

$ docker pause コンテナ識別子 [コンテナ識別子]

稼働コンテナへの接続 (docker attach)

$ docker attach コンテナ名

稼働コンテナでプロセス実行 (docker exec)

$ docker exec [オプション] コンテナ識別子 実行するコマンド [引数] 

稼働コンテナのプロセス確認 (docker top)

$ docker top コンテナ名

稼働コンテナのポート転送確認 (docker port)

$ docker port コンテナ名

コンテナの名前変更 (docker rename)

$ docker rename 現在のコンテナ名 新しいコンテナ名

ホストとコンテナ間でファイルをコピー (docker cp)

$ docker cp コンテナ識別子:コンテナ内のファイルパス ホストのディレクトリパス
$ docker cp ホストのファイル コンテナ識別子:コンテナ内のファイルパス

コンテナ操作の差分確認 (docker diff)

$ docker diff コンテナ識別子

コンテナからイメージ作成 (docker commit)

$ docker commit [オプション] コンテナ識別子 [イメージ名[:タグ名]]

コンテナをtarファイル出力 (docker export)

$ docker export コンテナ識別子

tarファイルからイメージ作成 (docker import)

$ docker import ファイルまたはURL - [イメージ名[:タグ名]]

イメージの保存 (docker save)

$ docker save [オプション] 保存ファイル名 [イメージ名]

イメージの読み込み (docker load)

$ docker load [オプション]

随時追加中

55
61
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
55
61