tag run library images imagenes hub example dockers docker docker-compose

run - dockers images



Diferencia entre servicio y contenedor en la ventana acoplable. (2)

Estaba pasando por la opción de volumes_from en docker. Aparentemente, puede importar volúmenes desde un contenedor o un servicio. Desde la ventana acoplable componer documentación es:

volúmenes_desde

Monte todos los volúmenes de otro servicio o contenedor, especificando opcionalmente el acceso de solo lectura (ro) o de lectura-escritura (rw).

volumes_from: - service_name - service_name:ro - container:container_name - container:container_name:rw

Nota: Los formatos de contenedor: ... solo se admiten en el formato de archivo de la versión 2. En la versión 1, puede usar nombres de contenedores sin marcarlos como tales:

- service_name - service_name:ro - container_name - container_name:rw

Estoy confundido aquí, ¿cuál es la diferencia entre contenedores y servicios aquí?


Los servicios y el contenedor están relacionados, pero ambos son cosas diferentes.

Un servicio puede ser ejecutado por uno o varios contenedores. Con la docker puede manejar contenedores y con la docker-compose puede manejar servicios.

Por ejemplo:

Digamos que tenemos este archivo docker-compose.yml :

web: image: example/my_web_app:latest expose: - 80 links: - db db: image: postgres:latest

Este archivo de redacción define dos servicios, web y db .

Cuando ejecute docker-compose up , asumiendo que el directorio del proyecto es test1 luego compose iniciará 2 contenedores llamados myapp_db_1 y myapp_web_1 .

$ docker ps -a CONTAINER ID IMAGE COMMAND ... NAMES 1c1683e871dc test1_web "nginx -g" ... test1_web_1 a41360558f96 test1_db "postgres -d" ... test1_db_1

Entonces, en este punto tienes 2 servicios y 1 contenedor para cada uno.

Pero podría escalar el servicio llamado web para usar 5 contenedores.

$ docker-compose scale web=5 Creating and starting 2 ... done Creating and starting 3 ... done Creating and starting 4 ... done Creating and starting 5 ... done

En este punto tienes 2 servicios y 6 contenedores.

$ docker ps -a CONTAINER ID IMAGE COMMAND ... NAMES 1bf4c939263f test1_web "nginx -g" ... test1_web_3 d3033964a44b test1_web "nginx -g" ... test1_web_4 649bbda4d0b0 test1_web "nginx -g" ... test1_web_5 a265ea406727 test1_web "nginx -g" ... test1_web_2 1c1683e871dc test1_web "nginx -g" ... test1_web_1 a41360558f96 test1_db "postgres -d'' ... test1_db_1

Además, con docker-compose puede ejecutar un subcomando contra uno o más servicios.

$docker-compose stop web


No puedo responder completamente a tu pregunta, ya que no entiendo sobre los servicios por mi cuenta. Sin embargo, comprendo volúmenes en relación con los contenedores, por lo que esto responderá a la mitad de tu pregunta :) ¿Una respuesta parcial es mejor que ninguna?

CONTENEDOR A

volumes: /my/shared/directory container_name:ca

CONTENEDOR B

volumes_from:ca

Ahora el contenedor B tendrá un nuevo directorio en él / my / shared / directory que se monta desde el contenedor A: el contenido del directorio en el contenedor B será exactamente el mismo que el contenido del directorio en el contenedor A

Si descubres sobre servicios por favor házmelo saber.