2016-02-22 13 views
19

ドッカーではvolumes_fromオプションを使用していました。どうやら、コンテナかサービスのいずれかからボリュームをインポートすることができます。ドッキングウィンドウのコンドキュメントからは、次のとおりです。ドッカーのサービスとコンテナの違いは

volumes_from

マウント読み取り専用アクセス(RO)または読み書き(rw)を指定する別のサービスまたはコンテナ、必要に応じて からすべてのボリューム。

volumes_from: 
- service_name 
- service_name:ro 
- container:container_name 
- container:container_name:rw 

注:コンテナ:...形式は、唯一のバージョン2 ファイル形式でサポートされています。バージョン1では、次のような それらをマークせずにコンテナ名を使用することができます。

- service_name 
- service_name:ro 
- container_name 
- container_name:rw 

私はここにコンテナやサービスの違いは何でここに混乱していますか?

答えて

40

サービスとコンテナは関連していますが、どちらも異なるものです。

サービスは、1つまたは複数のコンテナで実行できます。 dockerではコンテナを処理でき、docker-composeではサービスを処理できます。例えば

web: 
    image: example/my_web_app:latest 
    expose: 
    - 80 
    links: 
    - db 

db: 
    image: postgres:latest 

このコンファイルは2つのサービス、webdbを定義しています

は、我々はこのdocker-compose.ymlファイルしているとしましょう。

docker-compose upを実行すると、プロジェクトディレクトリがtest1であると仮定すると、myapp_db_1myapp_web_1の2つのコンテナが作成されます。

$ docker ps -a 
CONTAINER ID IMAGE  COMMAND   ...  NAMES 
1c1683e871dc test1_web "nginx -g"  ...  test1_web_1 
a41360558f96 test1_db  "postgres -d" ...  test1_db_1 

この時点では、2つのサービスと1つのコンテナがあります。

しかし、webという名前のサービスを5つのコンテナを使用するように拡張できます。この時点で

$ docker-compose scale web=5 
Creating and starting 2 ... done 
Creating and starting 3 ... done 
Creating and starting 4 ... done 
Creating and starting 5 ... done 

はあなたがあなたが1つ以上のサービスに対してサブコマンドを実行できるドッキングウィンドウ-構成し、2つのサービス及び6つのコンテナさらに
$ docker ps -a 
CONTAINER ID IMAGE  COMMAND   ...  NAMES 
1bf4c939263f test1_web "nginx -g"  ...  test1_web_3 
d3033964a44b test1_web "nginx -g"  ...  test1_web_4 
649bbda4d0b0 test1_web "nginx -g"  ...  test1_web_5 
a265ea406727 test1_web "nginx -g"  ...  test1_web_2 
1c1683e871dc test1_web "nginx -g"  ...  test1_web_1 
a41360558f96 test1_db  "postgres -d' ...  test1_db_1 

を持っています。

$docker-compose stop web 
2

私自身がサービスについて自分自身を理解していないので、私は完全にあなたの質問に答えません。 しかし、私は容器との関係でvolumes_fromを理解しているので、これはあなたの質問の半分に答えるでしょう:) 部分的な答えはnoneよりも優れていますか?

CONTAINER A

volumes: /my/shared/directory 
container_name:ca 

容器B

volumes_from:ca 

今容器Bを容器Aから搭載されていること/私/共有/ディレクトリ内に新しいディレクトリを持っています - ディレクトリの内容コンテナB内のディレクトリの内容とまったく同じです

サービスについて知りたい場合は

関連する問題