サービスとコンテナは関連していますが、どちらも異なるものです。
サービスは、1つまたは複数のコンテナで実行できます。 docker
ではコンテナを処理でき、docker-compose
ではサービスを処理できます。例えば
:
web:
image: example/my_web_app:latest
expose:
- 80
links:
- db
db:
image: postgres:latest
このコンファイルは2つのサービス、web
とdb
を定義しています
は、我々はこのdocker-compose.yml
ファイルしているとしましょう。
docker-compose up
を実行すると、プロジェクトディレクトリがtest1
であると仮定すると、myapp_db_1
とmyapp_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