Docker-compose全解使用
7938 ワード
一、Componentインストール
composeをインストール前にdocker 1がインストールされていることを確認します.3またはそれ以上のバージョンでLinux 64ビットシステムにcomposeをインストールします.注:もちろんインストール を選択できます. を表示できます.
OS Xシステムの場合は、以下の手順を実行する必要があります(親測定なし).
二、Component命令補完
インストールコマンド補完
bash completionがインストールされていることを確認し、現在最小インストールされていないLinuxを使用している場合、bash completionはOKであり、MAC上であれば
次回のログイン時に、Completion機能で使用できる補完は、コマンドラインでの入力によって異なります.補完されます:*使用可能なDocker-composeコマンド*特定のコマンドで使用可能なオプション*のコンテキスト条件(例えば、実行または停止状態のインスタンスを有するサービスまたはミラーベースのサービスVS Dockerfileベースのサービス)では、実行可能なサービス名が与えられ、
この機能があれば、Composeの入力がもっと速くなりますね.Happy working!
三、Component使用例
この例では、nginxサービスを開始するデータボリュームコンテナと、そのデータボリュームコンテナをnginxの静的ファイル1として実現する.composeフォルダ
3.起動
四、CLI説明(docker-composeコマンド)
ほとんどのComponentコマンドは1つ以上のサービスで実行されます.サービスが指定されていない場合、コマンドはすべてのサービスに適用されます.使用可能な情報をすべて取得する場合は、コマンド:
build作成または再構築サービスが作成されるとproject_とマークされます.サービス(composetest_dbなど)は、サービスのDockerfileまたは構築ディレクトリの内容を変更した場合に
helpコマンドのヘルプと使用情報の表示
killは
portポートバインド用の共通情報の出力
psディスプレイコンテナ
pull引き抜きサービスミラー
rm停止したコンテナの削除
runはサービス上で1回限りのコマンドを実行します.例えば、
startはすでに存在するコンテナをサービスとして起動します
stopは、実行中のコンテナを削除せずに停止し、コマンド
upは1つのサービスのために構築、作成、起動、コンテナ接続に付加されたサービスが起動されます.デフォルトで実行されていない限り、
オプション
-verboseより多くの出力を表示
-バージョン番号を表示して終了
-f,–file FILEオプションのComponent yamlファイルを指定します(デフォルト:docker-compose.yml)
-p,–project-name NAMEオプションのプロジェクト名を指定します(デフォルト:現在のディレクトリ名)
五、docker-compose.ymlコマンド説明
各定義はdocker-compose.ymlのサービスは、p_を明確に指定する必要があります.w_picpathまたはbuildオプションは、
p_w_picpath表記p_w_picpathのID、このp_w_picpath IDはローカルでもリモートでも可能で、ローカルが存在しない場合、Componentはpullを降りてみます
buildこのパラメータはDockerfileファイルのパスを指定します.このディレクトリもデーモンの構築環境(この文は少し)に送信されます.Corposeは既存の名前で構築され、マークされ、その後、このp_w_picpathを使用します.
commandデフォルトのコマンドを書き換える
linksは他のサービスのコンテナに接続されており、サービス名とこのリンクの別名を指定したり、サービス名のみを指定したりすることができます.
コンテナの内部には、次のように別名でエントリが作成されます.
環境変数も作成され、環境変数のパラメータについては後述する
external_linksはこのdocker-composeに接続されています.ymlファイルまたはComponent外部で起動されたコンテナ、特に共有および公共サービスを提供するコンテナ.コンテナ名と別名を指定する場合、
ports露出ポート、両方のポート(ホスト:コンテナ)を指定するか、コンテナのみのポート(ホストはランダムにポートを割り当てられます)
注意:ホスト:コンテナの形でポートをマッピングする場合、コンテナのポートを60未満にするとエラーが発生する可能性があります.YAMLはxx:yyのような形式のデータを60進数のデータとして解析するので、そのため、ポートマッピングを文字列として明確に指定することを忘れないでください.
exposeは、ホストにパブリッシュする必要がなく、リンクされたサービス(linked service)に提供されるだけで、内部ポートのみが指定できます.
volumesマウントパスが最もボリュームで、ホスト上のパス(ホスト:コンテナ)を選択的に指定したり、使用可能なモード(ホスト:コンテナ:ro)を指定したりできます.
Environmentは環境変数を追加し、配列や辞書を使用することができます.keyの環境変数は、Corposeを実行しているマシン上で対応する値を見つけることができます.これは、暗号化または特殊なホストの値に役立ちます.
env_fileは、
Netネットワークモード、dockerクライアントの
dnsカスタムDNSサービスは、個別の値またはリストであってもよい
cap_add,cap_dropは容器の能力に参加してあるいは取り除いて、
dns_searchカスタムDNS検索範囲は、個別の値またはリストであってもよい
working_dir,entrypoint,user,hostname,domainname,mem_limit,privileged,restart,stdin_open,tty,cpu_shares上記の各値は単独の値であり、
六、Component環境変数説明
環境変数はサービスに接続するための推奨方法ではなく、逆に、リンク名を使用する必要があります(デフォルトではリンクサービスの名前)ホスト名として接続されています.これにより、
name_PORT_num_protocolの完全なURL、例えば:DB_PORT_5432_TCP=tcp://172.17.0.5:5432
name_PORT_num_protocol_ADDRコンテナのIPアドレス、例えば:DB_PORT_5432_TCP_ADDR=172.17.0.5
name_PORT_num_protocol_PORT露出ポート番号、例えば:DB_PORT_5432_TCP_PORT=5432
name_PORT_num_protocol_PROTOプロトコル(tcpまたはudp)、例えば:DB_PORT_5432_TCP_PROTO=tcp
name_NAME
完全合格コンテナ名:DB_1_NAME=/myapp_web_1/myapp_db_1
テキストリンク:http://blog.csdn.net/zhiaini06/article/details/45287663
composeをインストール前にdocker 1がインストールされていることを確認します.3またはそれ以上のバージョンでLinux 64ビットシステムにcomposeをインストールします.
curl -L https://github.com/docker/compose/releases/download/1.1.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose 1212
command completion
(二参照)uname -s
とuname -m
の2つの引用符がキーボードのESCの下のボタンである場合、composeはインストールに成功し、コマンドdocker-compose --version
を使用してOS Xシステムの場合は、以下の手順を実行する必要があります(親測定なし).
二、Component命令補完
インストールコマンド補完
bash completionがインストールされていることを確認し、現在最小インストールされていないLinuxを使用している場合、bash completionはOKであり、MAC上であれば
brew install bash-completion
を使用してcompletionスクリプトを/etc/bash_にインストールできます.completion.d/(MACでは/usr/local/etc/bash_completion.d/)curl -L https://raw.githubusercontent.com/docker/compose/1.1.0/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose11
次回のログイン時に、Completion機能で使用できる補完は、コマンドラインでの入力によって異なります.補完されます:*使用可能なDocker-composeコマンド*特定のコマンドで使用可能なオプション*のコンテキスト条件(例えば、実行または停止状態のインスタンスを有するサービスまたはミラーベースのサービスVS Dockerfileベースのサービス)では、実行可能なサービス名が与えられ、
docker-compose scale
では、サービス名を補完する際に自動的に「=」が付加される.*オプション可能なパラメータについて、例えば、docker-compose kill -s
は、SIGUPおよびSIGUSR 1などの信号を完了するこの機能があれば、Composeの入力がもっと速くなりますね.Happy working!
三、Component使用例
この例では、nginxサービスを開始するデータボリュームコンテナと、そのデータボリュームコンテナをnginxの静的ファイル1として実現する.composeフォルダ
sudo mkdir composetest
cd composetest
2を作成します.docker-composeを作成します.ymlファイルtouch docker-compose.yml
vim docker-compose.yml
docker-compose.ymlに次のように入力します.dvc:
p_w_picpath: debian:wheezy
volumes:
- /www:/usr/share/nginx/html:ronginx:
p_w_picpath: nginx:latest
volumes_from:
- dvc ports:
- "8081:80"12345678910111234567891011
3.起動
docker-compose up -d
注意:コマンドdocker-compose ps
を使用して運転状況を表示四、CLI説明(docker-composeコマンド)
ほとんどのComponentコマンドは1つ以上のサービスで実行されます.サービスが指定されていない場合、コマンドはすべてのサービスに適用されます.使用可能な情報をすべて取得する場合は、コマンド:
docker-compose [COMMAND] --help
、コマンド(COMMAND)の説明を使用します.build作成または再構築サービスが作成されるとproject_とマークされます.サービス(composetest_dbなど)は、サービスのDockerfileまたは構築ディレクトリの内容を変更した場合に
docker-compose build
を使用して再構築できます.helpコマンドのヘルプと使用情報の表示
killは
SIGKILL
の信号を送信することによって運転を強制的に停止する容器を通じて、この信号は選択的に通過することができ、例えば:docker-compose kill -s SIGKINT
logs表示サービスのログ出力portポートバインド用の共通情報の出力
psディスプレイコンテナ
pull引き抜きサービスミラー
rm停止したコンテナの削除
runはサービス上で1回限りのコマンドを実行します.例えば、
docker-compose run web Python manage.py shell
scaleは、サービス開始のコンテナ数として設定され、service=num、例えばdocker-compose scale web=2 worker=3
などのパラメータ形式で指定されます.startはすでに存在するコンテナをサービスとして起動します
stopは、実行中のコンテナを削除せずに停止し、コマンド
docker-compose start
を使用して再起動できます.upは1つのサービスのために構築、作成、起動、コンテナ接続に付加されたサービスが起動されます.デフォルトで実行されていない限り、
docker-compose up
は各コンテナの出力を集中し、存在するとすべてのコンテナが停止し、実行docker-compose up -d
はバックグラウンドでコンテナを起動し、デフォルトで実行させます.サービスがコンテナに存在する場合、docker-compose up
は停止して再作成されます(volumes-fromを使用するとマウントされたボリュームが保持されます)、コンテナを停止して再作成したくない場合はdocker-compose up --no-recreate
を使用します.必要に応じて停止したコンテナが起動します.オプション
-verboseより多くの出力を表示
-バージョン番号を表示して終了
-f,–file FILEオプションのComponent yamlファイルを指定します(デフォルト:docker-compose.yml)
-p,–project-name NAMEオプションのプロジェクト名を指定します(デフォルト:現在のディレクトリ名)
五、docker-compose.ymlコマンド説明
各定義はdocker-compose.ymlのサービスは、p_を明確に指定する必要があります.w_picpathまたはbuildオプションは、
docker run
コマンドラインに入力されているのと同じです.docker run
では、Dockerfileファイルで指定されたオプション(CMD、EXPOSE、VOLUME、ENVなど)がデフォルトなので、docker-compose.ymlでもう一度指定する必要はありません.p_w_picpath表記p_w_picpathのID、このp_w_picpath IDはローカルでもリモートでも可能で、ローカルが存在しない場合、Componentはpullを降りてみます
p_w_picpath: ubuntu p_w_picpath: orchardup/postgresql p_w_picpath: a4bc65fd 123123
buildこのパラメータはDockerfileファイルのパスを指定します.このディレクトリもデーモンの構築環境(この文は少し)に送信されます.Corposeは既存の名前で構築され、マークされ、その後、このp_w_picpathを使用します.
build: /path/to/build/dir 11
commandデフォルトのコマンドを書き換える
command: bundle exec thin -p 3000 11
linksは他のサービスのコンテナに接続されており、サービス名とこのリンクの別名を指定したり、サービス名のみを指定したりすることができます.
links:
- db
- db:database
- redis 12341234
コンテナの内部には、次のように別名でエントリが作成されます.
172.17.2.186 db
172.17.2.186 database
172.17.2.186 redis 123123
環境変数も作成され、環境変数のパラメータについては後述する
external_linksはこのdocker-composeに接続されています.ymlファイルまたはComponent外部で起動されたコンテナ、特に共有および公共サービスを提供するコンテナ.コンテナ名と別名を指定する場合、
/etc/hosts
はexternal_links
と同じ意味の使い方に従います.external_links:
- redis_1
- project_db_1:mysql
- project_db_1:postgresql 12341234
ports露出ポート、両方のポート(ホスト:コンテナ)を指定するか、コンテナのみのポート(ホストはランダムにポートを割り当てられます)
注意:ホスト:コンテナの形でポートをマッピングする場合、コンテナのポートを60未満にするとエラーが発生する可能性があります.YAMLはxx:yyのような形式のデータを60進数のデータとして解析するので、そのため、ポートマッピングを文字列として明確に指定することを忘れないでください.
ports:
- "3000" - "8000:8000" - "49100:22" - "127.0.0.1:8001:8001" 1234512345
exposeは、ホストにパブリッシュする必要がなく、リンクされたサービス(linked service)に提供されるだけで、内部ポートのみが指定できます.
expose:
- "3000" - "8000" 123123
volumesマウントパスが最もボリュームで、ホスト上のパス(ホスト:コンテナ)を選択的に指定したり、使用可能なモード(ホスト:コンテナ:ro)を指定したりできます.
volumes_from:
- service_name
- container_name 123123
Environmentは環境変数を追加し、配列や辞書を使用することができます.keyの環境変数は、Corposeを実行しているマシン上で対応する値を見つけることができます.これは、暗号化または特殊なホストの値に役立ちます.
environment:
RACK_ENV: development
SESSION_SECRET:
environments:
- RACK_ENV=development
- SESSION_SECRET 123456123456
env_fileは、
links
で指定した環境変数が書き換えられる別の値またはリストである環境変数をファイルに追加します.env_file:
- .env RACK_ENV: development 1234512345
Netネットワークモード、dockerクライアントの
environment
パラメータでこれらの値を指定できますnet: "bridge" net: "none" net: "container:[name or id]" net: "host" 12341234
dnsカスタムDNSサービスは、個別の値またはリストであってもよい
dns: 8.8.8.8
dns:
- 8.8.8.8 - 9.9.9.9 12341234
cap_add,cap_dropは容器の能力に参加してあるいは取り除いて、
--net
を見て1枚の完全なリストがあることができますcap_add:
- ALL cap_drop:
- NET_ADMIN - SYS_ADMIN 123456123456
dns_searchカスタムDNS検索範囲は、個別の値またはリストであってもよい
dns_search: example.com dns_search:
- dc1.example.com
- dc2.example.com 12341234
working_dir,entrypoint,user,hostname,domainname,mem_limit,privileged,restart,stdin_open,tty,cpu_shares上記の各値は単独の値であり、
man 7 capabilities
に対応するパラメータと同じである.cpu_shares: 73working_dir: /codeentrypoint: /code/entrypoint.shuser: postgresqlhostname: foodomainname: foo.commem_limit: 1000000000privileged: truerestart: alwaysstdin_open: truetty: true 1234567891011121314151612345678910111213141516
六、Component環境変数説明
環境変数はサービスに接続するための推奨方法ではなく、逆に、リンク名を使用する必要があります(デフォルトではリンクサービスの名前)ホスト名として接続されています.これにより、
docker run
の詳細が表示されます.ComponentはDocker linksを使用してサービスのコンテナを他のコンテナに露出します.各リンクのコンテナには、コンテナ名の大文字で始まるサービスで使用可能な環境変数のセットが使用されます.実行docker-compose.yml
name_PORT完全URL、例えば:DB_PORT=tcp//172.17.0.5:5432 name_PORT_num_protocolの完全なURL、例えば:DB_PORT_5432_TCP=tcp://172.17.0.5:5432
name_PORT_num_protocol_ADDRコンテナのIPアドレス、例えば:DB_PORT_5432_TCP_ADDR=172.17.0.5
name_PORT_num_protocol_PORT露出ポート番号、例えば:DB_PORT_5432_TCP_PORT=5432
name_PORT_num_protocol_PROTOプロトコル(tcpまたはudp)、例えば:DB_PORT_5432_TCP_PROTO=tcp
name_NAME
完全合格コンテナ名:DB_1_NAME=/myapp_web_1/myapp_db_1
テキストリンク:http://blog.csdn.net/zhiaini06/article/details/45287663