Latest web development tutorials

Docker Behälteranschluss

Vor uns Zugriff auf das Netzwerk über den Hafen zu erreichen, ist in den Docker Containerdienste tätig. Lassen Sie uns an einen Docker Containerhafen verbinden


Netzwerk-Port Mapping

Wir haben eine Python-Anwendung Container.

w3big@w3big:~$ docker run -d -P training/webapp python app.py
fce072cc88cee71b1cdceb57c2821d054a4a59f67da6b416fceb5593f059fc6d

Darüber hinaus können wir die Netzwerkadresse Bindungs ​​Behälter, wie Bindungs ​​127.0.0.1 angeben.

Wir verwenden den Parameter -P einen Container zu erstellen, verwenden Sie Docker ps Port 5000 gebunden ist , eine Host - Port 32768 zu sehen.

w3big@w3big:~$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                     NAMES
fce072cc88ce        training/webapp     "python app.py"     4 minutes ago       Up 4 minutes        0.0.0.0:32768->5000/tcp   grave_hopper

Wir können auch die Option -p verwenden die Container Port angeben , an den Host - Port gebunden ist.

Ist der Unterschied zwischen den zwei Arten:

  • -P: Ist an der Innenseite des Containerhafens zufällig hohen Port auf dem Host abgebildet.
  • -p: in der Containerhafen wird an den angegebenen Host - Port gebunden.
w3big@w3big:~$ docker run -d -p 5000:5000 training/webapp python app.py
33e4523d30aaf0258915c368e66e03b49535de0ef20317d3f639d40222ba6bc0
w3big@w3big:~$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS                     NAMES
33e4523d30aa        training/webapp     "python app.py"     About a minute ago   Up About a minute   0.0.0.0:5000->5000/tcp    berserk_bartik
fce072cc88ce        training/webapp     "python app.py"     8 minutes ago        Up 8 minutes        0.0.0.0:32768->5000/tcp   grave_hopper

Darüber hinaus können wir die Netzwerkadresse Bindungs ​​Behälter, wie Bindungs ​​127.0.0.1 angeben.

w3big@w3big:~$ docker run -d -p 127.0.0.1:5001:5002 training/webapp python app.py
95c6ceef88ca3e71eaf303c2833fd6701d8d1b2572b5613b5a932dfdfe8a857c
w3big@w3big:~$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                                NAMES
95c6ceef88ca        training/webapp     "python app.py"     6 seconds ago       Up 6 seconds        5000/tcp, 127.0.0.1:5001->5002/tcp   adoring_stonebraker
33e4523d30aa        training/webapp     "python app.py"     3 minutes ago       Up 3 minutes        0.0.0.0:5000->5000/tcp               berserk_bartik
fce072cc88ce        training/webapp     "python app.py"     10 minutes ago      Up 10 minutes       0.0.0.0:32768->5000/tcp              grave_hopper

So dass wir den Behälter durch die Zugangsöffnung 127.0.0.1:5001 5002 zugreifen kann.

Das obige Beispiel ist der Standard - TCP - Port zu binden, wenn Sie UPD - Ports binden möchten, einen Port auf der Rückseite plus / udp.

w3big@w3big:~$ docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py
6779686f06f6204579c1d655dd8b2b31e8e809b245a97b2d3a8e35abe9dcd22a
w3big@w3big:~$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                                NAMES
6779686f06f6        training/webapp     "python app.py"     4 seconds ago       Up 2 seconds        5000/tcp, 127.0.0.1:5000->5000/udp   drunk_visvesvaraya
95c6ceef88ca        training/webapp     "python app.py"     2 minutes ago       Up 2 minutes        5000/tcp, 127.0.0.1:5001->5002/tcp   adoring_stonebraker
33e4523d30aa        training/webapp     "python app.py"     5 minutes ago       Up 5 minutes        0.0.0.0:5000->5000/tcp               berserk_bartik
fce072cc88ce        training/webapp     "python app.py"     12 minutes ago      Up 12 minutes       0.0.0.0:32768->5000/tcp              grave_hopper

Docker Port - Befehl ermöglicht es uns, schnell und einfach die Portbindungsinformationen anzeigen.

w3big@w3big:~$ docker port adoring_stonebraker 5002
127.0.0.1:5001

Docker Behälteranschluss

Port-Mapping ist nicht der einzige Weg zu einem anderen Docker Behälter zu verbinden.

Docker hat ein Verbindungssystem zusammen mehrere Container ermöglicht, die Verbindungsinformationen zu teilen.

Docker Verbindung wird ein Eltern-Kind-Beziehung, den Container Eltern schaffen, in dem Sie die Informationen des Unterbehälters zu sehen.


Namenscontainer

Wenn wir einen Behälter der Zeit schaffen, Dockarbeiter es wird automatisch benannt werden. Darüber hinaus können wir die --name benutzen auch den Namenscontainer zu identifizieren, zum Beispiel:

w3big@w3big:~$  docker run -d -P --name w3big training/webapp python app.py
43780a6eabaaf14e590b6e849235c75f3012995403f97749775e38436db9a441

Wir können den Namen des Containers sehen einen Docker ps - Befehl.

w3big@w3big:~$ docker ps -l
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                     NAMES
43780a6eabaa        training/webapp     "python app.py"     3 minutes ago       Up 3 minutes        0.0.0.0:32769->5000/tcp   w3big