Como se conectar ao contêiner do Docker via SSH

Como se conectar ao contêiner do Docker via SSH

Depois de instalar o Docker no Fedora, Almalinux, Manjaro ou alguma outra distro, é hora de instalar mais contêineres. Depois de ter um contêiner do Docker em funcionamento em um sistema Linux, uma das coisas que você provavelmente precisará fazer é executar comandos dentro do contêiner. Isso permite que você use o contêiner de maneira semelhante a como você faria com uma máquina física, exceto que o Docker fez a maior parte do trabalho de configuração para nós já.

Já existem dois comandos disponíveis que nos permitem executar comandos em um contêiner Docker. O primeiro é Docker Exec, e o segundo comando, que nos permite anexar a um contêiner em execução, é Docker Anexo. Esses comandos geralmente são suficientes, mas você pode se encontrar em um cenário em que prefere usar o SSH para se conectar ao contêiner do docker e gerenciá -lo.

Nem todos os recipientes do Docker são provisionados para executar SSH. Normalmente, os recipientes do Docker são muito leves e apenas programados para fazer uma coisa. No entanto, alguns contêineres do Docker permitirão SSH, e isso pode facilitar o gerenciamento do contêiner. Neste guia, veremos como se conectar a um contêiner do Docker via SSH do sistema host na linha de comando Linux.

Neste tutorial, você aprenderá:

  • Como se conectar a um contêiner em execução via SSH
Conectando -se a um contêiner de doca em execução via SSH 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

Conecte -se ao contêiner do Docker via SSH



Para este exemplo, já instalamos o docker e uma imagem nginx usando o Docker Pull nginx comando. Siga as instruções passo a passo abaixo para ver como determinamos o endereço IP do contêiner e depois use o comando ssh para conectar -se ao contêiner em execução.

  1. Primeiro, o contêiner do Docker precisa estar executando ativamente. Certifique -se de que você já começou usando o seguinte comando. Observe mais uma vez que estamos usando uma imagem nginx, mas você pode substituir o nome de sua própria imagem neste comando e comandos futuros.
    $ Docker Run -nome nginx -d nginx 
  2. Verifique se o seu contêiner está em execução, bem como o nome do seu contêiner, com este comando.
    $ docker ps 
  3. Visualizando os contêineres do Docker atualmente em execução em nosso sistema
  4. Agora podemos usar o seguinte comando para determinar o endereço IP do nosso contêiner nginx.
    $ Docker Inspect -f " .Configurações de rede.Ipaddress "nginx 


  5. Aqui determinamos o endereço IP do recipiente do docker que queremos ssh
  6. No nosso caso, o contêiner nginx possui um endereço IP de 172.17.0.2. Agora podemos tentar nos conectar a este endereço IP via SSH e a conta raiz.
    $ ssh [email protected] 

    Neste ponto, você se conectará com sucesso ao contêiner em execução ou receberá um erro de "conexão recusada". No caso de um erro, prossiga com as seguintes etapas para configurar um servidor SSH no contêiner.

  7. Se o SSH não estiver funcionando, precisamos garantir que o software esteja instalado no contêiner. Conecte -se ao contêiner com o seguinte comando.
    $ Docker Exec -it Nginx /Bin /Bash 
  8. Em seguida, instale SSH nele. Estamos usando apt Gerenciador de pacotes neste exemplo, mas pode ser necessário adaptar o comando se o seu contêiner estiver usando um gerenciador de pacotes diferente.
    # APT UPDATE && apt -y install OpenSsh -Server 
  9. Em seguida, configure o contêiner para que possamos fazer login na conta raiz via SSH.
    # echo "Permitrootlogin Sim" >>/etc/ssh/sshd_config 
  10. Não se esqueça de alterar a senha raiz para que você possa fazer o login.
    # passwd 
  11. Finalmente, inicie o serviço SSH no contêiner.
    # /etc /init.D/SSH Start 
  12. Agora você poderá ser capaz de SSH da máquina host, especificando o endereço IP que você determinou anteriormente e usando a senha root que você acabou de configurar a senha para.
    $ ssh [email protected] 


  13. Agora podemos ssh com sucesso no recipiente do Docker

Isso é tudo o que há para isso. Agora você pode se conectar ao seu contêiner em execução via SSH para executar comandos e gerenciá -lo. Claro, o método de usar Docker Exec O comando deve continuar funcionando também e pode realizar a mesma coisa.

Pensamentos finais

Neste guia, vimos como se conectar a um contêiner em execução do sistema host via SSH. O Docker já nos dá várias maneiras de conectar a um contêiner, mas ter a capacidade de SSH em contêineres pode ser bom para algumas situações. A parte complicada é que a maioria dos contêineres ainda não possui SSH instalado, pois normalmente são configurados com os requisitos mínimos nus. Isso requer algumas etapas extras de nossa parte, mas como você viu aqui, não é tão difícil de fazer.

Tutoriais do Linux relacionados:

  • Instalação do Manjaro Linux
  • Guia para iniciantes do Manjaro Linux
  • Manjaro Linux Windows 10 Boot dual
  • Como migrar de CentOS para Almalinux
  • Instale Manjaro no VirtualBox
  • Instalação do Almalinux
  • Como configurar o servidor e o cliente FTP/SFTP no Almalinux
  • Coisas para instalar no Ubuntu 20.04
  • Instale o Manjaro Architect Edition
  • Crie Manjaro Linux inicializável USB