Exemplo básico de rede sobre como conectar contêineres do Docker
- 2387
- 215
- Randal Kuhlman
Um dos muitos recursos desejáveis construídos diretamente em Docker é a rede. O recurso de rede do Docker pode ser acessado usando um --link
Bandeira que permite conectar qualquer número de recipientes do Docker sem a necessidade de expor as portas internas de um contêiner ao mundo exterior.
Neste guia, você aprenderá a conectar dois ou mais contêineres do Docker em um sistema Linux através das instruções da linha de comando. Isso funcionará em qualquer distribuição Linux. Confira as instruções passo a passo abaixo para descobrir como.
Neste tutorial, você aprenderá:
- Como fazer contêineres de rede de rede juntos
Categoria | Requisitos, convenções ou versão de software usada |
---|---|
Sistema | Qualquer distro Linux |
Programas | Docker |
Outro | Acesso privilegiado ao seu sistema Linux como raiz ou através do sudo comando. |
Convenções | # - requer que os comandos Linux sejam executados com privilégios root diretamente como usuário root ou por uso de sudo comando$ - Requer que os comandos do Linux sejam executados como um usuário não privilegiado regular |
Conectando recipientes do Docker através de redes
- Nesta configuração, você aprenderá como vincular dois ou mais recipientes para docker usando uma técnica simples de rede do Docker. Podemos começar pela implantação de nosso primeiro contêiner Docker, nomeado
SANBOX1
, para o qual mais tarde criaremos um link de rede:# Docker Run -it -Nome Sandbox1 -H SanBox1 LinuxConfig/Sandbox/Bin/Bash
Não há nada de novo no comando acima, exceto para observar que não estamos expondo nenhuma porta de rede, mesmo que nossa intenção seja acessar serviços (ssh, conexão com o banco de dados, etc.) através de seus números de porta relevantes.
- O comando Linux a seguir implantará um segundo e desta vez um contêiner de Docker -pai chamado
Sandbox2
. Também usaremos um--link
Flag que criará um chamado relacionamento pai-filho com contêiner anteriormente implantadoSandbox1
. Além disso, o--link
A bandeira permitirá ao contêiner pai acessar qualquer serviço em execução emSandbox1
contêiner por meio de seus números de portas correspondentes sem a necessidade do recipiente infantil de expor qualquer porta ao mundo exterior.# Docker Run -it -Nome Sandbox2 -H Sandbox2 -Link Sandbox1: Sandbox1 LinuxConfig/Sandbox/Bin/Bash
O comando Docker acima usou o
--link
Flag que espera dois argumentos separados por um cólon. Espera -se que o primeiro argumento seja um ID de contêiner ou como no nosso caso um fornecidoSandbox1
Nome do contêiner que gostaríamos de vincular. O segundo argumento, tambémSandbox1
, é um alias interno usado porSandbox2
resolverSandbox1
Configuração de rede usando o/etc/hosts
arquivo de configuração:
# grep sandbox1 /etc /hosts 172.17.0.41 Sandbox1
- Dependendo da configuração de portas do seu filho em uso, você também pode extrair
Sandbox1
Configuração das variáveis do ambiente do sistema. Por exemplo:# Env HostName = Sandbox2 termo = xterm sandbox1_port = tcp: // 172.17.0.37: 7555 sandbox1_port_7555_tcp = tcp: // 172.17.0.37: 7555 Path =/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin pwd =/sandbox1_port_7555_tcp_addr = 172.17.0.37 Sandbox1_port_7555_tcp_proto = tcp shlvl = 1 home =/root sandbox1_name =/sandbox2/sandbox1 sandbox1_port_7555_tcp_port = 7555 _ =/usr/bin/Env
- Dessa forma, podemos simplesmente usar o pseudônimo de nosso recipiente infantil para conectar -se a ele de um contêiner pai
Sandbox2
Sem a necessidade de codificar seu endereço IP:# ping -c 1 sandbox1 ping sandbox1 (172.17.0.41): 56 Dados bytes 64 bytes de 172.17.0.41: icmp_seq = 0 ttl = 64 tempo = 0.071 ms --- Sandbox1 Ping Statistics --- 1 pacotes transmitidos, 1 pacotes recebidos, 0% de perda de pacotes de ida e volta min/avg/max/stddev = 0.071/0.071/0.071/0.000 ms
e também acesse quaisquer portas e serviços:
# NMAP -P 22 Sandbox1 Iniciando NMAP 6.47 (http: // nmap.org) em 2015-05-18 08:58 UTC NMAP Scan Relatório para Sandbox1 (172.17.0.41) o host está em alta (0.000090S Latência). Serviço de Estado da porta 22/TCP Open SSH MAC Endereço: 02: 42: AC: 11: 00: 29 (desconhecido) NMAP Concluído: 1 endereço IP (1 host Up) digitalizado em 0.50 segundos
Isso é tudo o que há para isso. Nossos dois contêineres agora podem se comunicar e serviços como o trabalho SSH entre eles. Você pode aplicar a mesma configuração a dois ou mais recipientes do Docker que você precisa para conectar juntos.
Pensamentos finais
Neste guia, vimos como vincular os contêineres do Docker em um sistema Linux. Esta é uma tarefa relativamente básica que é facilitada através do Docker's --link
opção. Ter a capacidade de fazer rede dois ou mais contêineres do Docker aumenta substancialmente o poder e a utilidade do Docker.
Tutoriais do Linux relacionados:
- Coisas para instalar no Ubuntu 20.04
- Como criar, gerenciar e expor um serviço em Kubernetes
- Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
- Como se conectar ao contêiner do Docker via SSH
- Como criar uma pilha de lâmpadas à base de docker usando o docker em…
- Coisas para fazer depois de instalar o Ubuntu 22.04 Jellyfish…
- Como definir ou alterar o sinalizador de partição de inicialização no Linux
- Como mostrar/verificar por portas abertas no Ubuntu Linux
- Como usar um arquivo como uma chave do dispositivo Luks
- Instale Arch Linux na estação de trabalho VMware
- « Como remover todos os recipientes do Docker usando um único comando
- Removendo linhas duplicadas de um arquivo de texto usando a linha de comando Linux »