Cuál es la diferencia entre docker y docker-compose
docker
y docker-compose
parecen estar interactuando con el mismo dockerFile, ¿cuál es la diferencia entre las dos herramientas?
2 answers
La cli docker
se utiliza cuando se administran contenedores individuales en un motor de docker. Es la línea de comandos del cliente para acceder a la api del demonio docker.
La cli docker-compose
se puede usar para administrar una aplicación de varios contenedores. También mueve muchas de las opciones que ingresarías en la cli docker run
al archivo docker-compose.yml
para reutilizarlas más fácilmente. Funciona como un "script" de front-end sobre la misma api de docker utilizada por docker
, por lo que puede hacer todo lo que docker-compose
hace con los comandos docker
y una gran cantidad de scripts de shell. Vea esta documentación en docker-compose para más detalles.
Actualización para el Modo Enjambre
Desde que se publicó esta respuesta, docker ha añadido un segundo uso de docker-compose.archivos yml. Comenzando con el formato yml versión 3 y docker 1.13, puede usar yml con docker-compose y también para definir una pila en el modo swarm de docker. Para hacer esto último, debe usar docker stack deploy -c docker-compose.yml $stack_name
en lugar de docker-compose up
y luego administrar la pila con comandos docker
en lugar de docker-compose
comandos. El mapeo es uno por uno entre los dos usos:
- Compose Project -> Swarm Stack: Un grupo de servicios para un propósito específico
- Compose Service -> Swarm Service: Una imagen y su configuración, posiblemente ampliada.
- Compose Container -> Tarea Swarm: Un único contenedor en un servicio
Para más detalles sobre el modo swarm, consulte la documentación del modo swarm de docker .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-25 20:38:17
docker
gestiona contenedores individuales
docker-compose
administra múltiples aplicaciones de contenedores
El uso de docker-compose requiere 3 pasos:
- Defina el entorno de la aplicación con un Dockerfile
- Defina los servicios de la aplicación en docker-compose.yml
- Ejecutar
docker-compose up
para iniciar y ejecutar la aplicación
A continuación se muestra una docker-compose.yml ejemplo tomado de la 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/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-29 06:39:53