Exemplo básico de rede sobre como conectar contêineres do Docker

Exemplo básico de rede sobre como conectar contêineres do Docker

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
Vinculando dois recipientes do Docker através de redes no Linux Requisitos de software e convenções de linha de comando Linux
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



  1. 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.

  2. 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 implantado Sandbox1. Além disso, o --link A bandeira permitirá ao contêiner pai acessar qualquer serviço em execução em Sandbox1 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 fornecido Sandbox1 Nome do contêiner que gostaríamos de vincular. O segundo argumento, também Sandbox1, é um alias interno usado por Sandbox2 resolver Sandbox1Configuração de rede usando o /etc/hosts arquivo de configuração:



    # grep sandbox1 /etc /hosts 172.17.0.41 Sandbox1 
  3. Dependendo da configuração de portas do seu filho em uso, você também pode extrair Sandbox1Configuraçã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 
  4. 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 
Somos capazes de nos comunicar do contêiner Sandbox1 para o Sandbox2, como evidenciado pelo comando ping

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