2017-08-05 1 views
2

Ich habe einen Server, auf dem zwei Andock-Container ausgeführt werden.Kommunizieren Sie zwischen Andock-Containern

Ein Docker Container ist ein Webserver und ein anderer ist ein Selen-Chrom-Treiber.

Aus dem Container mit dem Webserver möchte ich in der Lage sein, eine Verbindung mit dem Chrome-Treiber herzustellen.

Und der Web-Server wird wie folgt gestartet:

docker run -i -p 80:80 -d '<name>:<version>' /sbin/my_init 

Der Selen-Treiber wird wie folgt gestartet:

docker run -d -p 4444:4444 -v /dev/shm:/dev/shm selenium/standalone-chrome:3.4.0 

Von der Host-Maschine Ich bin in der Lage Informationen aus dem Selen Container zu bekommen mit curl:

curl http://localhost:4444/wd/hub/status 
# => {"state":"success","sessionId":.......... 

Aber vom Webserver-Container bekomme ich nur:

Was kann ich tun, damit der Container, der den Webserver enthält, eine Verbindung mit dem anderen Container herstellen kann?

Antwort

2

Ich glaube, Sie haben Netzwerke zu erstellen: docker.com work with networks help

Grundbehälter Vernetzung Beispiel:

Zunächst erstellen und zwei Container laufen, container1 und container2:

$ docker run -itd --name=container1 busybox 

18c062ef45ac0c026ee48a83afa39d25635ee5f02b58de4abc8f467bcaa28731 

$ docker run -itd --name=container2 busybox 

498eaaaf328e1018042c04b2de04036fc04719a6e39a097a4f4866043a2c2152 

Eine isolierte, Brücke Netzwerk zum Testen mit.

$ docker network create -d bridge --subnet 172.25.0.0/16 isolated_nw 

06a62f1c73c4e3107c0f555b7a5f163309827bfbbf999840166065a8f35455a8 

Connect container2 an das Netzwerk und dann das Netzwerk überprüfen die Verbindung zu überprüfen:

$ docker network connect isolated_nw container2 

$ docker network inspect isolated_nw 

[ 
    { 
     "Name": "isolated_nw", 
     "Id": "06a62f1c73c4e3107c0f555b7a5f163309827bfbbf999840166065a8f35455a8", 
     "Scope": "local", 
     "Driver": "bridge", 
     "IPAM": { 
      "Driver": "default", 
      "Config": [ 
       { 
        "Subnet": "172.25.0.0/16", 
        "Gateway": "172.25.0.1/16" 
       } 
      ] 
     }, 
     "Containers": { 
      "90e1f3ec71caf82ae776a827e0712a68a110a3f175954e5bd4222fd142ac9428": { 
       "Name": "container2", 
       "EndpointID": "11cedac1810e864d6b1589d92da12af66203879ab89f4ccd8c8fdaa9b1c48b1d", 
       "MacAddress": "02:42:ac:19:00:02", 
       "IPv4Address": "172.25.0.2/16", 
       "IPv6Address": "" 
      } 
     }, 
     "Options": {} 
    } 
] 

Beachten Sie, dass container2 automatisch eine IP-Adresse zugewiesen wird. Da Sie beim Erstellen des Netzwerks ein Subnet angegeben haben, wurde die IP-Adresse aus diesem Subnetz ausgewählt.

Zur Erinnerung, Container1 ist nur mit dem Standard-Brückennetzwerk verbunden.

Verwandte Themen