Ricerca…


Parametri

Parametro Dettagli
tty:true In docker-compose.yml, la bandiera tty: true mantiene attivo il comando sh del contenitore in attesa di input.

Osservazioni

I driver di rete host e bridge sono in grado di connettere i contenitori su un singolo host di docker. Per consentire ai contenitori di comunicare oltre una macchina, creare una rete di sovrapposizione. I passaggi per creare la rete dipendono da come vengono gestiti gli host della docker.

Docker network

I contenitori nella stessa rete mobile hanno accesso alle porte esposte.

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

Il Dockerfile di Console espone 8500 , 8600 e molte altre porte. Per dimostrare, esegui un altro contenitore nella stessa rete:

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

Qui il contenitore del console è risolto da keys , il nome dato nel primo comando. Docker fornisce la risoluzione DNS su questa rete, per trovare i contenitori con il loro --name .

Docker-composizione

Le reti possono essere specificate in un file di composizione (v2). Per impostazione predefinita tutti i contenitori si trovano in una rete condivisa.

Inizia con questo file: 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

L'avvio di questo stack con docker-compose up -d creerà una rete che prende il nome dalla directory padre, in questo caso example_default . Controllare con la docker network ls

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

Connettiti al contenitore alpino per verificare che i contenitori possano risolvere e comunicare:

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

Un file di composizione può avere una networks: sezione di livello superiore per specificare il nome della rete, il driver e altre opzioni dal comando di rete della finestra mobile .

Collegamento di container

L'argomento link: --link e il link: sezioni docker-compose creano alias in altri contenitori.

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

Con il collegamento, il nome originale o la mappatura risolverà il contenitore 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

Prima di collegare il 1.10.0 contenitore 1.10.0 anche la connettività di rete - comportamento ora fornito dalla rete mobile. I collegamenti nelle versioni successive forniscono solo un effetto legacy sulla rete bridge predefinita.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow