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?

Author: Failed Scientist, 2016-06-22

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 .

 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/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:

  1. Defina el entorno de la aplicación con un Dockerfile
  2. Defina los servicios de la aplicación en docker-compose.yml
  3. Ejecutar docker-compose up para iniciar y ejecutar la aplicación

docker-componer

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: {}
 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/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-29 06:39:53