Les liens entre les conteneurs ne fonctionnent pas avec docker-composer version 2
La liaison entre les conteneurs dans un version 2 docker-composition de fichier ne fonctionne pas.
Uniquement lors de l'utilisation de la "vieille" version 1 format, je ne vois le lien dans /etc/hosts du conteneur.
J'ai le texte suivant de base de la version 2 docker-composer.yml fichier.
de la version: '2' services: mon application: image: tomcat:8.0 container_name: mon-app1 liens: - mes-redis mon-redis: image: redis container_name: mon-redis1
Quand je lance la commande suivante:
docker-composer jusqu'-d
Je vois que les deux conteneurs sont démarrés, mais aucun lien n'est créé dans le fichier /etc/hosts:
docker exec -il mon-app1 cat /etc/hosts
127.0.0.1 localhost ::1 localhost ip6-localhost ip6-bouclage fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 172.18.0.3 2abb84ccada9
De "mon-app1' je peux faire un ping de l'autre conteneur à l'aide de l'adresse IP de 'mon-redis1", mais je ne peut pas faire un ping-redis1 " (fondée sur un nom).
Ce qui pourrait être le problème?
Informations supplémentaires:
- Docker version 1.10.0, construire 590d5108
- docker-composition de la version 1.6.0, construire d99cad6
- Noyau Linux: 4.3.5-300.fc23.x86_64
source d'informationauteur user2030035
Vous devez vous connecter pour publier un commentaire.
Avec la version 2 de docker-composer les "services" (conteneurs) qui sont dans le même réseau sont reliés entre eux par défaut.
À l'aide de la ci-dessous docker-composer.fichier yml
Vous ne pouvez exécuter
ping my-app
de votremy-redis
conteneur etping my-redis
de votremy-app
conteneur pour vérifier qu'ils sont liés.Par exemple:
Vous pouvez obtenir plus d'informations à ce sujet dans les liens ci-dessous:
https://blog.docker.com/2016/02/compose-1-6/
https://github.com/docker/compose/blob/master/docs/networking.md
Le problème est le firewalld de ma Fedora hôte.
Avec le pare-feu désactivé temporairement ('systemctl stop firewalld', suivi de 'systemctl restart docker') tout fonctionne selon le docker de la documentation.
Il semble y avoir un problème majeur avec firewalld lorsqu'il est utilisé avec docker, voir: https://github.com/docker/docker/issues/16137.
Noter que RHEL/Centos 7 également utiliser firewalld.
-Arjen