ドッカー-COMPOSE(コンテナを作成します)

ドッカー-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 rundocker run
DockerfileCMDEXPOSEVOLUMEENVdocker-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の検索範囲は、単一の値またはリストであり

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

おすすめ

転載: www.cnblogs.com/sitoi/p/11819512.html