Suche…


Parameter

Parameter Einzelheiten
tty:true In docker-compose.yml sorgt das Flag tty: true dafür, dass der Befehl sh des Containers auf Eingabe wartet.

Bemerkungen

Die host und bridge Netzwerktreiber können Container auf einem einzigen Docker-Host verbinden. Erstellen Sie ein Overlay-Netzwerk, damit Container über eine Maschine kommunizieren können. Die Schritte zum Erstellen des Netzwerks hängen davon ab, wie Ihre Docker-Hosts verwaltet werden.

Docker-Netzwerk

Container im selben Docker-Netzwerk haben Zugriff auf freiliegende Ports.

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

Die Dockerfile von Consul stellt 8500 , 8600 und mehrere weitere Ports bereit . Führen Sie zur Demonstration einen anderen Container in demselben Netzwerk aus:

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

Hier wird der Konsul-Container aus keys aufgelöst, der Name wird im ersten Befehl angegeben. Docker bietet DNS-Auflösung in diesem Netzwerk, um Container anhand ihres --name zu finden.

Docker komponieren

Netzwerke können in einer Erstellungsdatei (Version 2) angegeben werden. Standardmäßig befinden sich alle Container in einem gemeinsam genutzten Netzwerk.

Beginnen Sie mit dieser Datei: 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

Wenn Sie diesen Stack mit docker-compose up -d example_default wird ein Netzwerk erstellt, das nach dem übergeordneten Verzeichnis benannt wird, in diesem Fall example_default . Überprüfen Sie mit dem docker network ls

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

Stellen Sie eine Verbindung zum Alpencontainer her, um zu überprüfen, ob die Container aufgelöst werden können und kommunizieren können:

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

Eine Erstellungsdatei kann über networks: verfügen networks: oberster Abschnitt, um den Netzwerknamen, den Treiber und andere Optionen des Docker-Netzwerkbefehls anzugeben.

Containerverknüpfung

Der Docker --link Argument und link: Abschnitte Docker-compose machen Aliase andere Behälter.

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

Bei Verknüpfung löst entweder der ursprüngliche Name oder das Mapping den Redis-Container auf.

> 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

Vor der Docker 1.10.0 Containerverbindung 1.10.0 auch die Netzwerkkonnektivität ein - Verhalten, das jetzt vom Docker-Netzwerk bereitgestellt wird. Links in späteren Versionen bieten nur legacy - Effekt auf dem Standard - Brücke Netzwerk.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow