Docker
Containers aansluiten
Zoeken…
parameters
Parameter | Details |
---|---|
tty:true | In docker-compose.yml zorgt de vlag tty: true ervoor dat het sh commando van de container blijft wachten op invoer. |
Opmerkingen
De host
en bridge
netwerkdrivers kunnen containers op een enkele docker-host aansluiten. Maak een overlay-netwerk om containers meer dan één machine te laten communiceren. Stappen om het netwerk te maken, zijn afhankelijk van hoe uw docker-hosts worden beheerd.
Docker netwerk
Containers in hetzelfde docker-netwerk hebben toegang tot zichtbare poorten.
docker network create sample
docker run --net sample --name keys consul agent -server -client=0.0.0.0 -bootstrap
Consul's Dockerfile toont 8500
, 8600
en nog enkele poorten. Voer een andere container in hetzelfde netwerk uit om dit te demonstreren:
docker run --net sample -ti alpine sh
/ # wget -qO- keys:8500/v1/catalog/nodes
Hier wordt de consulcontainer omgezet van keys
, de naam die bij het eerste commando wordt gegeven. Docker biedt dns-resolutie op dit netwerk, om containers te vinden op hun --name
.
Docker-compose
Netwerken kunnen worden gespecificeerd in een compose-bestand (v2). Standaard bevinden alle containers zich in een gedeeld netwerk.
Begin met dit bestand: 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
Als u deze stapel start met docker-compose up -d
wordt een netwerk gemaakt met de naam van de bovenliggende map, in dit geval example_default
. Neem contact op met docker network ls
> docker network ls
NETWORK ID NAME DRIVER SCOPE
719eafa8690b example_default bridge local
Maak verbinding met de alpine container om te controleren of de containers kunnen oplossen en communiceren:
> docker exec -ti example_test_1 sh
/ # nslookup keys
...
/ # wget -qO- keys:8500/v1/kv/?recurse
...
Een opstelbestand kan een networks:
sectie op het hoogste niveau om de netwerknaam, het stuurprogramma en andere opties van de docker-netwerkopdracht op te geven .
Container koppelen
Het --link
argument en link:
secties docker-compose maken aliassen naar andere containers.
docker network create sample
docker run -d --net sample --name redis redis
Met koppeling lost de oorspronkelijke naam of de toewijzing de redis-container op.
> 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
Voordat 1.10.0
containerkoppeling ook netwerkconnectiviteit 1.10.0
- gedrag nu geboden door docker netwerk. Koppelingen in latere versies hebben alleen een legacy
effect op het standaard bridge-netwerk.