Dockerイメージの操作
イメージのダウンロード
docker pull [オプション] イメージ名[:タグ名]
// (例)CentOSのDockerイメージ取得
docker pull centos:7
// (例)CentOSのすべてのタグのDockerイメージ取得
docker pull -a centos
// (例)取得先URLを指定してCentOSのDockerイメージ取得
docker pull registry.hub.docker.com/centos:7
イメージの一覧表示
docker images [オプション名] [リポジトリ名]
// (例)ローカル環境のDockerイメージの一覧表示
docker images
// (例)ローカル環境のDockerイメージのダイジェスト表示
docker images --digests asashiho/dockersample
イメージの詳細確認
docker inspect [オプション] コンテナ識別子またはイメージ識別子 [コンテナ識別子またはイメージ識別子]
// (例)Dockerイメージの詳細表示
docker inspect centos
// (例)OS情報の取得
docker inspect --format="{{.Os}}" centos
イメージのタグ設定
docker tag イメージ名:[タグ名] ユーザー名/イメージ名:[タグ名]
// (例)Dockerイメージへのタグ設定
docker tag httpd:2.4 asashiho/webserver:1.0
イメージの検索
docker search [オプション] 検索キーワード
// (例)Docker Hubに公開されているDockerイメージの検索
docker search centos
// (例)人気のあるDockerイメージの検索
docker search --stars=30 centos
イメージの削除
docker rmi [オプション] イメージ名 [イメージ名]
// (例)Dockerイメージの削除
docker rmi nginx
Docker Hubへのログイン
docker login [オプション] [サーバ名]
// (例)Docker Hubへのログイン
docker login
イメージのアップロード
docker push イメージ名[:タグ名]
// (例)Docker HubにDockerイメージをアップロード
docker push asashiho/webserver:1.0
Docker Hubからのログアウト
docker logout [サーバ名]
// (例)Docker Hubからログアウト
docker logout
Dockerコンテナの生成/起動/停止
コンテナの生成/起動
docker run [オプション] イメージ名[:タグ名] [引数]
// (例)カレンダー表示
docker run -it --name "test" centos /bin/cal
// (例)bashの実行
docker run -it --name "test" centos /bin/bash
コンテナのバックグラウンド実行
docker run [オプション] イメージ名[:タグ名] [引数]
// (例)コンテナのバックグラウンド起動
docker run -d centos /bin/ping localhost
// (例)コンテナのログ確認
docker logs -t 4bd7e5f77
// (例)コンテナの常時再起動
docker run -it --restart=always centos /bin/bash
コンテナのネットワーク設定
docker run [オプション] イメージ名[:タグ名] [引数]
// (例)コンテナのポートマッピング
docker run -d -p 8080:80 httpd
// (例)コンテナのDNSサーバ指定
docker run --dns=192.168.1.1 httpd
// (例)MACアドレスの指定
docker run -it --mac-address="92:d0:c6:0a:29:33" centos
// (例)ホスト名とIPアドレス定義
docker run -it --add-host=test.com:192.168.1.1 centos
// (例)ホスト名の設定
docker run -it --hostname=www.test.com --add-host=node1.test.com:192.168.1.1 centos
// (例)コンテナのリンク設定
docker run -it --name appserver --link dbserver:pg centos /bin/bash
リソースを指定してコンテナを生成/実行
docker run [リソースオプション] イメージ名[:タグ名] [引数]
// (例)CPU時間の相対割合とメモリの使用量を指定
docker run --cpu-shares=512 --memory=512m centos
// (例)ディレクトリの共有
docker run -v /c/Users/asa/WebPage:/var/www/html httpd
コンテナを生成/起動する環境を指定
docker run [環境設定オプション] イメージ名[:タグ名] [引数]
// (例)環境変数の設定
docker run -it -e foo=bar centos /bin/bash
// (例)環境変数の一括設定
docker run -it --env-file=env_list centos /bin/bash
// (例)作業ディレクトリの設定
docker run -it -w=/tmp/work centos /bin/bash
稼働コンテナの一覧表示
docker ps [オプション]
// (例)すべてのコンテナを表示する
docker ps -a
// (例)フィルタリング
docker ps -a -f 'name=test1'
// (例)出力形式の指定
docker ps -a --format "{{.ID}}: {{.Status}}"
// (例)出力形式を表形式にする
docker ps -a --format "table {{.ID}}\t{{.Status}}"
コンテナの稼働確認
docker stats [コンテナ識別子]
// (例)Apache、Nginxの稼働確認
docker stats apache nginx
コンテナの起動
docker start [オプション] コンテナ識別子 [コンテナ識別子]
// (例)コンテナの起動
docker start dbb4bbe0f470
コンテナの停止
docker stop [オプション] コンテナ識別子 [コンテナ識別子]
// (例)コンテナを2秒後に停止
docker stop -t 2 dbb4bbe0f470
コンテナの再起動
docker restart [オプション] コンテナ識別子 [コンテナ識別子]
// (例)コンテナを2秒後に再起動
docker restart -t 2 dbb4bbe0f470
コンテナの削除
docker rm [オプション] コンテナ識別子 [コンテナ識別子]
// (例)コンテナを削除
docker rm dbb4bbe0f470
// (例)コンテナを一括削除
docker rm -f 'docker ps -a -q'
コンテナの中断/再開
docker pause コンテナ識別子 [コンテナ識別子]
// (例)コンテナの中断
docker pause nginx1
// (例)コンテナの再開
docker unpause nginx1
稼働しているDockerコンテナの操作
稼働コンテナへの接続
docker attach コンテナ識別子
// (例)コンテナへの接続
docker attach test
// プロセス終了
[Ctrl] + [p]
// コンテナ終了
[Ctrl] + [C]
稼働コンテナでプロセス実行
docker exec [オプション] コンテナ識別子 実行するコマンド [引数]
// (例)bashを実行
docker exec -it nginx1 /bin/bash
// (例)pingを実行
docker exec -it nginx1 /bin/ping localhost
稼働コンテナのプロセス確認
docker top コンテナ識別子
// (例)プロセス確認
docker top nginx1
稼働コンテナのポート転送確認
docker port コンテナ識別子
// (例)ポート転送確認
docker port nginx1
コンテナの名前変更
docker rename コンテナ識別子 コンテナ識別子
// (例)コンテナ名の変更
docker rename old new
コンテナ内のファイルをコピー
docker cp コンテナ識別子:コンテナ内のファイルパス ホストのディレクトリパス
docker cp ホストのファイル コンテナ識別子:コンテナ内のファイルパス
// (例)コンテナからホストへのファイルコピー
docker cp test:/etc/passwd /tmp/etc
// (例)ホストからコンテナへのファイルコピー
docker cp ./local.txt test:/tmp/test.txt
コンテナ操作の差分確認
docker diff コンテナ識別子
// (例)コンテナとイメージの差分確認
docker diff test
Dockerの情報確認
Dockerのバージョン確認
docker version
// (例)バージョン確認
docker version
Dockerの実行環境確認
docker info
// (例)実行環境確認
docker info
コンテナからイメージの作成
コンテナからイメージ作成
docker commit [オプション] コンテナ識別子 [イメージ名[:タグ名]]
// (例)コンテナからイメージの作成
docker commit -a "ASA SHIHO" nginx1 asashiho/webfront:1.0
コンテナをtarファイル出力
docker export コンテナ識別子
// (例)tarファイル出力
docker export webap > latest.tar
tarファイルからイメージ作成
docker import ファイルまたはURL - [イメージ名[:タグ名]]
// (例)tarファイル取り込み
cat latest.tar | docker import - webap:1.0
イメージの保存
docker save [オプション] 保存ファイル名 [イメージ名]
// (例)イメージの保存
docker save -o export.tar mongo
イメージの読み込み
docker load [オプション]
// (例)イメージの読み込み
docker load -i export.tar
Dockerfile
DockerfileからDockerイメージの作成
docker build -t [生成するイメージ名]:[タグ名] [Dockerfileの場所]
// (例)新しいイメージの作成
docker build -t sample:1.0 /home/docker/sample
// (例)ファイル名を指定
docker build -t sample -f Dockerfile.base .
// (例)標準入力から
docler build - < Dockerfile