Recherche…


Paramètres

Paramètre Détails
tty:true Dans docker-compose.yml, le drapeau tty: true maintient la commande sh du conteneur en attente de saisie.

Remarques

Les pilotes du réseau host et du bridge peuvent connecter des conteneurs sur un seul hôte de docker. Pour permettre aux conteneurs de communiquer au-delà d'une machine, créez un réseau superposé. Les étapes pour créer le réseau dépendent de la gestion de vos hôtes Docker.

Réseau Docker

Les conteneurs du même réseau Docker ont accès aux ports exposés.

docker network create sample
docker run --net sample --name keys consul agent -server -client=0.0.0.0 -bootstrap

Dockerfile du consul expose 8500 , 8600 et plusieurs autres ports. Pour démontrer, exécutez un autre conteneur sur le même réseau:

docker run --net sample -ti alpine sh
/ # wget -qO- keys:8500/v1/catalog/nodes

Ici, le conteneur consul est résolu à partir des keys , le nom donné dans la première commande. Docker fournit une résolution DNS sur ce réseau, pour rechercher des conteneurs par leur --name .

Docker-compose

Les réseaux peuvent être spécifiés dans un fichier de composition (v2). Par défaut, tous les conteneurs sont dans un réseau partagé.

Commencez avec ce fichier: example/docker-compose.yml :

version: '2'
services:
  keys:
    image: consul
    command: agent -server -client=0.0.0.0 -bootstrap
  test:
    image: alpine
    tty: true
    command: sh

Démarrer cette pile avec docker-compose up -d créera un réseau nommé d'après le répertoire parent, dans ce cas example_default . Vérifier avec le docker network ls

 > docker network ls
NETWORK ID          NAME                    DRIVER              SCOPE
719eafa8690b        example_default         bridge              local

Connectez-vous au conteneur alpin pour vérifier que les conteneurs peuvent se résoudre et communiquer:

 > docker exec -ti example_test_1 sh
/ # nslookup keys
...
/ # wget -qO- keys:8500/v1/kv/?recurse
...

Un fichier de composition peut avoir une section networks: top level pour spécifier le nom du réseau, le pilote et d'autres options à partir de la commande docker network .

Liaison de conteneur

L'argument docker --link et le link: sections docker-compose --link alias sur d'autres conteneurs.

docker network create sample
docker run -d --net sample --name redis redis

Avec link, le nom d'origine ou le mappage résoudra le conteneur redis.

> docker run --net sample --link redis:cache -ti python:alpine sh -c "pip install redis && python"
>>> import redis
>>> r = redis.StrictRedis(host='cache')
>>> r.set('key', 'value')
True

Avant docker 1.10.0 , la liaison de conteneur permet également de configurer la connectivité réseau - comportement désormais fourni par le réseau Docker. Les liens dans les versions ultérieures fournissent uniquement un effet legacy sur le réseau de pont par défaut.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow