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?
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 .
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:
- Zdefiniuj środowisko aplikacji za pomocą pliku Dockerfile ]}
- Zdefiniuj usługi aplikacji w docker-compose.yml
- Run
docker-compose up
aby uruchomić i uruchomić aplikację
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: {}
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