Je traversais volumes_from
option dans docker compose. Apparemment, vous pouvez importer un volume à partir d'un conteneur ou d'un service. De la documentation de docker compose, il s'agit de:
volumes_from
Montez tous les volumes à partir d'un autre service ou conteneur, en spécifiant éventuellement un accès en lecture seule (ro) ou en lecture-écriture (rw).
volumes_from: - service_name - service_name:ro - container:container_name - container:container_name:rw
Remarque: Les formats conteneur: ... ne sont pris en charge que dans le format de fichier version 2. Dans la version 1, vous pouvez utiliser des noms de conteneurs sans les marquer comme tels:
- service_name - service_name:ro - container_name - container_name:rw
Je suis confus ici quelle est la différence entre les conteneurs et les services ici?
Les services et les conteneurs sont liés, mais les deux sont des choses différentes.
Un service peut être exécuté par un ou plusieurs conteneurs. Avec docker
vous pouvez gérer des conteneurs et avec docker-compose
vous pouvez gérer les services.
Par exemple:
Disons que nous avons ce docker-compose.yml
fichier:
web:
image: example/my_web_app:latest
expose:
- 80
links:
- db
db:
image: postgres:latest
Ce fichier de composition définit deux services, web
et db
.
Lorsque vous exécutez docker-compose up
, En supposant que le répertoire du projet est test1
puis compose démarrera 2 conteneurs nommés myapp_db_1
et 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
Donc, à ce stade, vous avez 2 services et 1 conteneur pour chacun.
Mais vous pouvez faire évoluer le service nommé web
pour utiliser 5 conteneurs.
$ 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
Dans ce point, vous avez 2 services et 6 conteneurs
$ 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
De plus, avec docker-compose, vous pouvez exécuter la sous-commande sur un ou plusieurs services.
$docker-compose stop web
je ne peux pas répondre entièrement à votre question car je ne comprends pas moi-même les services. Cependant, je comprends les volumes_from par rapport aux conteneurs et donc cela répondra à la moitié de votre question :) Une réponse partielle est meilleure que rien?
CONTENEUR A
volumes: /my/shared/directory
container_name:ca
CONTENEUR B
volumes_from:ca
Maintenant, le conteneur B aura un nouveau répertoire dans mon répertoire/my/shared/qui est monté à partir du conteneur A - le contenu du répertoire dans le conteneur B sera exactement le même que le contenu du répertoire dans le conteneur A
si vous découvrez les services plz faites le moi savoir