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