Sök…


parametrar

Parameter detaljer
tty:true I docker-compose.yml håller tty: true flaggan behållarens sh kommando igång och väntar på inmatning.

Anmärkningar

De host och bridge nätverksdrivrutiner kan ansluta containrar på en enda hamnarbetare värd. Skapa ett överläggsnätverk för att tillåta behållare att kommunicera bortom en maskin. Steg för att skapa nätverket beror på hur dina dockningsvärdar hanteras.

Docker-nätverk

Behållare i samma dockningsnätverk har åtkomst till exponerade portar.

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

Consul's Dockerfile exponerar 8500 , 8600 och flera fler hamnar. För att demonstrera, kör en annan behållare i samma nätverk:

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

Här löses konsulbehållaren från keys , namnet som ges i det första kommandot. Docker tillhandahåller dns-upplösning på detta nätverk för att hitta containrar efter deras --name .

Docker-compose

Nätverk kan anges i en kompositionsfil (v2). Som standard finns alla behållare i ett delat nätverk.

Börja med den här filen: 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

docker-compose up -d denna stack med docker-compose up -d skapas ett nätverk uppkallad efter moderkatalogen, i detta fall example_default . Kontrollera med docker network ls

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

Anslut till den alpina behållaren för att verifiera att behållarna kan lösa och kommunicera:

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

En kompositionsfil kan ha ett networks: toppnivåavsnitt för att ange nätverksnamn, drivrutin och andra alternativ från dockningsnätverkskommandot .

Länk till behållare

Dokumentet för --link link: och link: sektioner docker-compose gör alias till andra containrar.

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

Med länken löser antingen det ursprungliga namnet eller kartläggningen redis-behållaren igen.

> 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

Innan docker 1.10.0 behållarlänkning konfigurerar också nätverksanslutning - beteende som nu tillhandahålls av docker-nätverk. Länkar i senare versioner ger endast legacy effekt på standardbronätverket.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow