Docker-compose全解使用

7938 ワード

一、Componentインストール
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 -suname -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 composetestcd composetest2を作成します.docker-composeを作成します.ymlファイルtouch docker-compose.ymlvim docker-compose.ymldocker-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 SIGKINTlogs表示サービスのログ出力
    portポートバインド用の共通情報の出力
    psディスプレイコンテナ
    pull引き抜きサービスミラー
    rm停止したコンテナの削除
    runはサービス上で1回限りのコマンドを実行します.例えば、docker-compose run web Python manage.py shellscaleは、サービス開始のコンテナ数として設定され、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/hostsexternal_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.ymlname_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