ドッカー-COMPOSE(コンテナを作成します)
この記事オリジナル住所:https://sitoi.cn/posts/23955.html
サンプル
version: "2"
services:
spark-dashboard:
build:
context: .
container_name: spark-dashboard
image: docker.io/sitoi/spark-dashboard
environment:
- SPARK_TYPE=master
ports:
- 5000:5000
redis:
image: docker.io/redis:4
ports:
- '6379:6379'
volumes:
- ./db/redis:/data
command: >
--requirepass password
neo4j:
image: docker.io/neo4j:3.3
ports:
- "7474:7474"
- "7687:7687"
volumes:
- ./db/neo4j:/data/
ドッキングウィンドウ-コンコマンド
ほとんどCompose
のコマンドは、サービスが指定されていない場合、このコマンドは、すべてのサービスに適用される、1つ以上のサービス上で実行されている
[COMMAND] --helpがドッキングウィンドウ-コン:あなたはすべての入手可能な情報を取得したい場合は、コマンドを使用して 、 次のことがありますコマンド(コマンド)の指示:
ビルド
作成または再構築サービス
サービスが作成された後としてマークされているproject_service
(例えばcomposetest_db
)、
あなたはDockerfileサービスやビルドディレクトリの内容を変更する場合は、使用することができdocker-compose build
、それを再構築します
助けて
表示ヘルプと使用情報コマンド
殺します
送信によってSIGKILL
強制容器の停止操作の信号を、この信号は、例えば、選択によるものであってもよいです。
docker-compose kill -s SIGKINT
ログ
ログ出力表示サービス
港
出力ポート公衆に情報を結合
PS
ディスプレイのコンテナ
引く
プルサービスミラーリング
RM
停止は、コンテナを削除しました
ラン
次のような1回限りのコマンドを実行するためのサービスで
docker-compose run web python manage.py shell
規模
コンテナの数のサービスが開始されると、フォームで指定されているようなパラメータの数を設定します。service=num
のような:
docker-compose scale web=2 worker=3
開始
サービスとして起動し、既存のコンテナ
やめる
それらを削除せずに、コンテナの実行を停止し、彼らは、コマンドを使用することができdocker-compose start
、それを再起動します
アップ
ビルドへのサービスとして、作成、起動、コンテナに添付
彼らはすでに実行されていない限り、接続サービスは、開始されます
デフォルトでは、docker-compose up
フォーカスの意志出力各コンテナに、本、すべてのコンテナが実行を停止しますdocker-compose up -d
開始コンテナをし、それらをバックグラウンドで実行します
デフォルトでは、サービスがコンテナがある場合、それはdocker-compose up
停止し、それらを再作成します(使用がvolumes-from
マウントされたボリュームを保持します)、
あなたはコンテナは、使用することを停止し、再作成したくないdocker-compose up --no-recreate
、必要であれば、それは任意の停止を開始しますコンテナ
オプション
-verbose
より多くの出力を表示します
-版
バージョン番号と終了を表示
-f、-file FILE
オプションを指定しCompose yaml
たファイルdocker-compose.yml
(デフォルト:)
-p、-project名NAME
指定するオプションのプロジェクト名(デフォルト:カレントディレクトリ名)
ドッキングウィンドウ-compose.yamlファイルの説明
それぞれの定義がdocker-compose.yml
明示的にサービスAに指定する必要がありますimage
またはbuild
オプションのために、同じコマンドライン入力に対応している、で(のようなオプションで指定したファイル、、 、) がデフォルトですので、する必要はありませんに再指定一度docker run
docker run
Dockerfile
CMD
EXPOSE
VOLUME
ENV
docker-compose.yml
画像
画像IDがローカルであるか、またはリモートであってもよいし、IDの画像を示し、ローカルに存在しない場合は、作曲が行くようにしようとしますpull
ダウン
image: ubuntu
image: orchardup/postgresql
image: a4bc65fd
ビルド
このパラメータは、指定しDockerfile
たファイルへのパスを、ディレクトリはまた、デーモンビルド環境(この文ビット)に送られ、作曲はすでにビルドに存在し、ラベルされたことを名前で、その後、このイメージを使用します
build: /path/to/build/dir
コマンド
デフォルトコマンドの実行を開始するための容器をカバーした後、
command: bundle exec thin -p 3000
リンク
コンテナ、エイリアス名とリンクに接続された他のサービスには、指定されたサービスであるか、または唯一のサービス名を指定することができます
links:
- db
- db:database
- redis
このとき、容器の内側に、それはこのように、との/ etc / hostsファイルに別名エントリを作成します。
172.17.2.186 db
172.17.2.186 database
172.17.2.186 redis
環境変数は、環境変数のパラメータは、後述する、作成されます。
外部リンク
このドッキングウィンドウ-compose.ymlファイルや作曲への接続では、外部の公共サービスや共有コンテナを提供するための、特にコンテナを、開始しました。
コンテナ名と別名、指定する際external_links
のフォローとlinks
同じセマンティクスの使用を
external_links:
- redis_1
- project_db_1:mysql
- project_db_1:postgresql
ポート
露出されたポート情報。
使用ホスト:容器(HOST:CONTAINER)形式または(ランダムホスト・ポートを選択した)だけ指定されたコンテナのポートが使用されてもよいです。
ports:
- "3000"
- "8000:8000"
- "49100:22"
- "127.0.0.1:8001:8001"
注:使用している場合HOST:CONTAINER
、ポート・フォーマットをマップするために時間をあなたが少ない60以上のコンテナポートを使用している場合、あなたは、あまりにも間違った結果を得るかもしれない
YAMLが解決されますのでxx:yy
、このデジタル形式は60進です。これは、文字列フォーマットを使用することをお勧めします。
晒します
ホストに公開することなく、ポートを露出したが、唯一のサービスにリンクしますlinked service
提供、唯一の内部ポートを指定することができます
expose:
- "3000"
- "8000"
ボリューム
ほとんどのボリュームがマウントパスを、パスが選択ホスト(上で指定することができます主机:容器
)、または使用モード(主机:容器:ro
)
volumes:
- /var/lib/mysql
- cache/:/tmp/cache
- ~/configs:/etc/configs/:ro
volumes_from
これは、別のサービスまたはコンテナからすべてのボリュームをマウントします。
volumes_from:
- service_name
- container_name
環境
環境変数を追加すると、あなたは配列や辞書を使用することができ、1つのキーだけの環境変数は、暗号化や特別なホストの値を助け実行している作曲機で対応する値、で見つけることができますがあり
environment:
RACK_ENV: development
SESSION_SECRET:
environments:
- RACK_ENV=development
- SESSION_SECRET
env_file
ファイルから環境変数は、ファイルのパスやリストを分離することができます。
よる場合はdocker-compose -f FILE
指定されたテンプレートファイル、そしてenv_file
パスは、テンプレートファイルのパスに基づいて行われます。
変数名とがある場合environment
矛盾命令は、後者が優先するものとします。
env_file:
- .env
RACK_ENV: development
ネット
ネットワークモードでは、することができ、これらの値を指定するためのパラメータdocker客户端
--net
net: "bridge"
net: "none"
net: "container:[name or id]"
net: "host"
DNS
カスタムDNSサービスは、単一の値またはリストを指定できます
dns: 8.8.8.8
dns:
- 8.8.8.8
- 9.9.9.9
cap_add、cap_drop
参照するには、コンテナの機能を追加または削除すると、man 7 capabilities
完全なリストを持つことができます
cap_add:
- ALL
cap_drop:
- NET_ADMIN
- SYS_ADMIN
dns_search
カスタムDNSの検索範囲は、単一の値またはリストであり
dns_search: example.com
dns_search:
- dc1.example.com
- dc2.example.com
WORKING_DIR、エントリポイント、ユーザー、ホスト名、ドメイン名、mem_limit、特権、再起動、stdin_open、TTY、cpu_shares
上記の各々は、単に単一の値、ドッカー実行され、対応するパラメータは同じです
cpu_shares: 73
working_dir: /code
entrypoint: /code/entrypoint.sh
user: postgresql
hostname: foo
domainname: foo.com
mem_limit: 1000000000
privileged: true
restart: always
stdin_open: true
tty: true
作曲環境変数説明
環境変数は、もはや逆に、サービスに接続するための推奨される方法です、あなたはより多くの詳細を表示することができ、(デフォルトはリンクサービスの名前です)、ホスト名に接続するためのリンクとして名を使用するべきではありませんがドッキングウィンドウ-compose.yamlの
作曲を他のコンテナにサービスを公開するドッカーリンクを使用しています。コンテナの各リンクは、血管の名前の先頭に大文字で各セットの環境変数である環境変数のセットを使用して
利用可能なサービスの環境変数は、実行ドッキングウィンドウ・コン実行サービスのenvを参照してください
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