GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo usar SSH en un contenedor Docker en ejecución y ejecutar comandos

Introducción

Docker es una utilidad que te permite crear un contenedor para ejecutar aplicaciones. Un contenedor Docker es una máquina virtual completa.

Esta guía le mostrará tres métodos para SSH en un contenedor Docker y ejecutar comandos.

Requisitos previos

  • Un sistema Linux que ejecuta Docker
  • Contenedores preconfigurados cargados y funcionando
  • Acceso a una ventana de terminal/símbolo del sistema (Ctrl +Alt +T o Ctrl +Alt +F2 )
  • Una cuenta de usuario con sudo privilegios

Método 1:Usar docker exec para ejecutar comandos en un contenedor Docker

El docker exec comando ejecuta un comando especificado dentro de un contenedor que ya se está ejecutando. Puede usarlo para SSH en un contenedor Docker creando un bash shell (un shell donde puede escribir comandos).

La sintaxis básica para usar docker exec ejecutar un comando en contenedores es:

docker exec [options] [container] [command]

Comience extrayendo una imagen de Docker si aún no lo ha hecho. Por ejemplo, puede cargar Nginx :

sudo docker pull nginx

Luego, ejecute la imagen:

sudo docker run ––name nginx–test –d nginx

Enumere todos los contenedores en ejecución para verificar:

sudo docker ps

Ahora debería ver su imagen de prueba nginx cargada.

Para obtener acceso y ejecutar comandos en ese contenedor Docker, escriba lo siguiente:

sudo docker exec –it nginx-test /bin/bash

Ahora, ha iniciado sesión en nginx-test envase. Por lo tanto, cualquier comando que ingrese se ejecutará en ese contenedor. El –i opción especifica interactivo y el –t habilita un tecleo terminal interfaz.

Método 2:Utilice el comando adjuntar docker para conectarse a un contenedor en ejecución

El docker attach El comando vincula una entrada local, una salida y un flujo de error a un contenedor. De forma predeterminada, se inicia en un bash cáscara . Para conectarse a un contenedor en ejecución, ingrese lo siguiente:

sudo docker attach container_Name

En el siguiente ejemplo, el sistema se conectará a la prueba de nginx contenedor:

sudo docker attach nginx-test

Una vez que se ejecuta el comando, estará trabajando en el contenedor. Cualquier comando que ejecute afectará el entorno virtual de Docker.

Método 3:usar SSH para conectarse a un contenedor Docker

Puede conectarse a un contenedor Docker mediante SSH (Secure Shell). Normalmente, SSH se usa para conectarse de forma remota a través de una red a un servidor. La tecnología funciona igual cuando se conecta a un contenedor Docker virtual en su sistema.

Paso 1:habilite SSH en el sistema

Comience instalando y habilitando el servicio SSH:

Habilitar SSH en Ubuntu 18.04:

sudo apt-get install ssh

sudo systemctl ssh start

sudo systemctl ssh enable

service ssh status

Habilitar SSH en CentOS 7:

yum –y install openssh-server openssh-clients

service sshd start

service sshd enable

service sshd status

Paso 2:Obtenga la dirección IP del contenedor

Obtenga la dirección IP del contenedor mediante docker inspect comando y filtrando los resultados.

Para motores Docker modernos, use el comando:

sudo docker inspect -f "{{ .NetworkSettings.IPAddress }}" container_name

Para motores Docker más antiguos, ejecute:

docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name

El sistema mostrará la dirección IP como se ve en la imagen de arriba.

Paso 3:SSH en el contenedor Docker

Haga ping a la dirección IP para asegurarse de que esté disponible:

ping –c 3 172.17.0.2

Utilice la herramienta SSH para conectarse a la imagen:

ssh [email protected]

El sistema debe solicitar una contraseña del usuario root para ese contenedor. Si dice Conexión rechazada , es probable que el contenedor no esté aprovisionado para SSH. Si el indicador cambia, ahora está conectado a través de SSH y puede ejecutar comandos en el contenedor.


Ubuntu
  1. Cómo instalar y configurar Docker Container en Rocky Linux 8

  2. ¿Cómo ejecutar un comando dentro de un contenedor Systemd en ejecución?

  3. ¿Cómo ejecutar un programa dentro de un contenedor Docker?

  4. Cómo ejecutar MySQL en un contenedor Docker

  5. Cómo ejecutar un comando en un contenedor Docker en ejecución

Cómo verificar si el demonio Docker o un contenedor se está ejecutando

Cómo ejecutar PHPMyAdmin en un contenedor Docker

Cómo ejecutar Grafana en un contenedor Docker

Cómo usar SSH en contenedores Docker [paso a paso]

Cómo ejecutar contenedores Docker

Cómo usar SSH en un contenedor Docker