Cómo conectarse al contenedor Docker a través de SSH

Cómo conectarse al contenedor Docker a través de SSH

Después de instalar Docker en Fedora, Almalinux, Manjaro o alguna otra distribución, es hora de instalar más contenedores. Una vez que tenga un contenedor Docker en funcionamiento en un sistema Linux, una de las cosas que probablemente debe hacer es ejecutar comandos dentro del contenedor. Esto le permite usar el contenedor de manera similar a cómo haría una máquina física, excepto que Docker ha realizado la mayor parte del trabajo de la configuración para nosotros ya.

Ya hay dos comandos disponibles que nos permiten ejecutar comandos en un contenedor Docker. El primero es Docker Exec, y el segundo comando, que nos permite unir a un contenedor en ejecución, es acoplador. Estos comandos generalmente son suficientes, pero puede encontrarse en un escenario en el que prefiera usar SSH para conectarse al contenedor Docker y administrarlo.

No todos los contenedores de Docker se aprovisionan para ejecutar SSH. Normalmente, los contenedores Docker son muy livianos y solo se programan para hacer una cosa. Sin embargo, algunos contenedores Docker permitirán SSH, y esto puede facilitar la gestión del contenedor. En esta guía, veremos cómo conectarse a un contenedor Docker a través de SSH desde el sistema de host en la línea de comandos de Linux.

En este tutorial aprenderás:

  • Cómo conectarse a un contenedor Docker en ejecución a través de SSH
Conectarse a un contenedor Docker en ejecución a través de SSH en Linux Requisitos de software y convenciones de línea de comandos de Linux
Categoría Requisitos, convenciones o versión de software utilizada
Sistema Cualquier distribución de Linux
Software Estibador
Otro Acceso privilegiado a su sistema Linux como root o a través del sudo dominio.
Convenciones # - requiere que los comandos de Linux dados se ejecuten con privilegios raíz directamente como un usuario raíz o mediante el uso de sudo dominio
ps - Requiere que los comandos de Linux dados se ejecuten como un usuario regular no privilegiado

Conéctese al contenedor Docker a través de SSH



Para este ejemplo, ya hemos instalado Docker y una imagen NGINX utilizando el Docker Pull Nginx dominio. Siga las instrucciones paso a paso a continuación para ver cómo determinamos la dirección IP del contenedor y luego use el comando ssh para conectarse al contenedor en ejecución.

  1. Primero, el contenedor Docker debe ejecutar activamente. Asegúrese de que ya lo haya comenzado usando el siguiente comando. Tenga en cuenta una vez más que estamos utilizando una imagen NGINX, pero puede sustituir el nombre de su propia imagen en este comando y comandos futuros.
    $ Docker Run - -name nginx -d nginx 
  2. Verificar que su contenedor se esté ejecutando, así como el nombre de su contenedor, con este comando.
    $ Docker PS 
  3. Ver los contenedores Docker en ejecución actualmente en nuestro sistema
  4. Ahora podemos usar el siguiente comando para determinar la dirección IP de nuestro contenedor Nginx.
    $ Docker Inspect -f " .Configuración de la red.Ipaddress "nginx 


  5. Aquí determinamos la dirección IP del contenedor Docker en el que queremos SSH
  6. En nuestro caso, el contenedor nginx tiene una dirección IP de 172.17.0.2. Ahora podemos intentar conectarnos a esta dirección IP a través de SSH y la cuenta raíz.
    $ ssh [email protected] 

    En este punto, se conectará correctamente al contenedor en ejecución o obtendrá un error de "conexión rechazada". En el caso de un error, continúe con los siguientes pasos para configurar un servidor SSH en el contenedor.

  7. Si SSH no funciona, debemos asegurarnos de que el software esté instalado en el contenedor. Conéctese al contenedor con el siguiente comando.
    $ docker exec -it nginx /bin /bash 
  8. Luego, instale ssh en él. Estamos usando apto Administrador de paquetes En este ejemplo, pero es posible que deba adaptar el comando si su contenedor está utilizando un administrador de paquetes diferente.
    # Apt Update && apt -y Install OpenSsh -server 
  9. A continuación, configure el contenedor para que podamos iniciar sesión en la cuenta raíz a través de SSH.
    # echo "Permitrootlogin Sí" >>/etc/ssh/sshd_config 
  10. No olvide cambiar la contraseña de root para que pueda iniciar sesión.
    # passwd 
  11. Finalmente, comience el servicio SSH en el contenedor.
    # /etc /init.D/ssh inicio 
  12. Ahora podrá SSH desde la máquina host especificando la dirección IP que determinó anteriormente, y utilizando la contraseña de root que acaba de configurar la contraseña para la contraseña.
    $ ssh [email protected] 


  13. Ahora podemos SSH con éxito en el contenedor Docker

Eso es todo al respecto. Ahora puede conectarse a su contenedor en ejecución a través de SSH para ejecutar comandos y administrarlo. Por supuesto, el método de usar Docker Exec El comando debe seguir funcionando tan bien y puede lograr lo mismo.

Pensamientos de cierre

En esta guía, vimos cómo conectarse a un contenedor Docker en ejecución desde el sistema de host a través de SSH. Docker ya nos ofrece múltiples formas de conectarnos a un contenedor, pero tener la capacidad de ssh en contenedores puede ser bueno para algunas situaciones. La parte difícil es que la mayoría de los contenedores aún no tienen SSH instalado, ya que normalmente están configurados con los requisitos mínimos. Esto requiere algunos pasos adicionales de nuestra parte, pero como has visto aquí, no es tan difícil de hacer.

Tutoriales de Linux relacionados:

  • Instalación de Manjaro Linux
  • Guía para principiantes de Manjaro Linux
  • Manjaro Linux Windows 10 Dual Boot
  • Cómo migrar de Centos a Almalinux
  • Instale Manjaro en Virtualbox
  • Instalación de Almalinux
  • Cómo configurar el servidor FTP/SFTP y el cliente en Almalinux
  • Cosas para instalar en Ubuntu 20.04
  • Instale la edición de Manjaro Architect
  • Crea Manjaro Linux Bootable USB