run - docker tag
¿Cuál es la diferencia entre docker y docker-compose? (2)
docker
y
docker-compose
parecen estar interactuando con el mismo dockerFile, ¿cuál es la diferencia entre las dos herramientas?
El
docker
Cli se utiliza al administrar contenedores individuales en un motor Docker.
Es la línea de comando del cliente para acceder a la api docker daemon.
El cli
docker-compose
se puede usar para administrar una aplicación de contenedores múltiples.
También mueve muchas de las opciones que ingresaría en el
docker run
cli al archivo
docker-compose.yml
para una reutilización más fácil.
Funciona como un "script" front-end en la parte superior de la misma api docker utilizada por
docker
, por lo que puede hacer todo lo que
docker-compose
hace con los comandos de
docker
y una gran cantidad de scripts de shell.
Consulte
esta documentación en docker-compose
para obtener más detalles.
Actualización para el modo Enjambre
Desde que se publicó esta respuesta, docker ha agregado un segundo uso de los archivos docker-compose.yml.
Comenzando con el
formato yml de
la
versión 3
y docker 1.13, puede usar el yml con docker-compose y también para definir una pila en el modo enjambre de docker.
Para hacer esto último, debe usar
docker stack deploy -c docker-compose.yml $stack_name
lugar de
docker-compose up
y luego administrar la pila con comandos
docker
lugar de comandos
docker-compose
.
El mapeo es uno por uno entre los dos usos:
- Redactar proyecto -> Pila de enjambre: un grupo de servicios para un propósito específico
- Servicio de redacción -> Servicio de enjambre: una imagen y su configuración, posiblemente ampliada.
- Redactar contenedor -> Tarea de enjambre: un único contenedor en un servicio
Para obtener más detalles sobre el modo enjambre, consulte la documentación del modo enjambre de Docker .
docker
gestiona contenedores individuales
docker-compose
gestiona múltiples aplicaciones de contenedor
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
-
Ejecute
docker-compose up
para iniciar y ejecutar la aplicación
A continuación se muestra un ejemplo de docker-compose.yml tomado de los documentos de docker :
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
- logvolume01:/var/log
links:
- redis
redis:
image: redis
volumes:
logvolume01: {}