Jaka jest różnica między Dockerem a docker-compose

docker i docker-compose wydaje się być interakcją z tym samym plikiem dockerFile, jaka jest różnica między tymi dwoma narzędziami?

Author: Failed Scientist, 2016-06-22

2 answers

docker cli jest używany do zarządzania poszczególnymi kontenerami na silniku dokującym. Jest to linia poleceń klienta, aby uzyskać dostęp do Docker daemon api.

The docker-compose cli może być używany do zarządzania aplikacją wielokanałową. Przenosi również wiele opcji, które można wprowadzić w docker run cli do pliku docker-compose.yml w celu łatwiejszego ponownego użycia. Działa jako "skrypt" front-endu na tym samym interfejsie API Dockera używanym przez docker, więc możesz robić wszystko {[1] } za pomocą poleceń docker i wielu skryptów powłoki. Więcej szczegółów można znaleźć w dokumentacji docker-compose .


Update for Swarm Mode

Odkąd ta odpowiedź została opublikowana, docker dodał drugie użycie docker-compose.pliki yml. Począwszy od w wersji 3 format yml i docker 1.13, możesz użyć yml z docker-compose, a także zdefiniować stos w trybie roju Dockera. Aby to zrobić, musisz użyć docker stack deploy -c docker-compose.yml $stack_name zamiast docker-compose up, a następnie zarządzać stosem za pomocą komend docker zamiast docker-compose polecenia. Odwzorowanie jest jednym dla jednego między dwoma zastosowaniami:

    [27]} komponuj projekt - > stos roju: Grupa usług dla określonego celu
  • Compose Service - > Swarm Service: jeden obraz i jego konfiguracja, ewentualnie skalowana.
  • Compose Container - > Swarm Task: pojedynczy kontener w usłudze

Aby uzyskać więcej informacji na temat trybu roju, zobacz dokumentację trybu roju Dockera .

 159
Author: BMitch,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-25 20:38:17

docker zarządza pojedynczymi kontenerami

docker-compose zarządza wieloma aplikacjami kontenerów

Użycie docker-compose wymaga 3 kroków:

  1. Zdefiniuj środowisko aplikacji za pomocą pliku Dockerfile ]}
  2. Zdefiniuj usługi aplikacji w docker-compose.yml
  3. Run docker-compose up aby uruchomić i uruchomić aplikację

docker-compose up

Poniżej znajduje się docker-compose.YML przykład zaczerpnięty z docker docs :

services:
  web:
    build: .
    ports:
    - "5000:5000"
    volumes:
    - .:/code
    - logvolume01:/var/log
    links:
    - redis
  redis:
    image: redis
volumes:
  logvolume01: {}
 12
Author: JSON C11,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-29 06:39:53