Latest web development tutorials

conexão recipiente Docker

Na frente de nós para alcançar o acesso à rede através do porto está operando nos serviços de contêiner janela de encaixe. Vamos conectar a um porto de contentores docker


Mapeamento de porta de rede

Criamos um contêiner de aplicativos python.

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

Além disso, podemos especificar o recipiente de ligação de endereço de rede, tais como 127.0.0.1 vinculativo.

Nós usamos o parâmetro -P para criar um recipiente, use janela de encaixe porta PS 5000 é obrigado a ver um 32768 porta do host.

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

Também pode usar o sinalizador -p para especificar a porta recipiente é ligado à porta do host.

É a diferença entre as duas formas:

  • -P: É mapeado para o interior do prato de escotilhão alta porta aleatória sobre o hospedeiro.
  • -p: no interior do porto de contentores é ligado à porta de host especificado.
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

Além disso, podemos especificar o recipiente de ligação de endereço de rede, tais como 127.0.0.1 vinculativo.

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

Para que possamos acessar o recipiente através da porta de acesso 127.0.0.1:5001 5002.

O exemplo acima, o padrão é ligar a porta TCP, se você deseja ligar as portas UPD, uma porta na parte de trás 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

comando de porta janela de encaixe nos permite visualizar rapidamente e facilmente as informações de ligação do porto.

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

conexão recipiente Docker

mapeamento de porta não é a única maneira de se conectar a outro recipiente janela de encaixe.

janela de encaixe tem um sistema de conexão permite que vários recipientes juntos, compartilhando as informações de conexão.

conexão janela de encaixe irá criar uma relação pai-filho, o recipiente pai no qual você pode ver a informação do recipiente sub.


contêiner de nomeação

Quando criamos um recipiente de tempo, janela de encaixe ele será automaticamente nomeado. Além disso, também podemos usar o --name para identificar o contêiner de nomeação, por exemplo:

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

Nós podemos ver o nome do recipiente utilizando um comando de janela de encaixe ps.

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