GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment se connecter en SSH à un conteneur Docker en cours d'exécution et exécuter des commandes

Présentation

Docker est un utilitaire qui vous permet de créer un conteneur pour exécuter des applications. Un conteneur Docker est une machine virtuelle entièrement contenue.

Ce guide vous montrera trois méthodes pour SSH dans un conteneur Docker et exécuter des commandes.

Prérequis

  • Un système Linux exécutant Docker
  • Conteneurs préconfigurés chargés et en cours d'exécution
  • Accès à une fenêtre de terminal/invite de commande (Ctrl +Alt +T ou Ctrl +Alt +F2 )
  • Un compte utilisateur avec sudo privilèges

Méthode 1 :Utiliser docker exec pour exécuter des commandes dans un conteneur Docker

Le docker exec La commande exécute une commande spécifiée dans un conteneur déjà en cours d'exécution. Vous pouvez l'utiliser pour vous connecter en SSH à un conteneur Docker en créant un bash shell (un shell où vous pouvez taper des commandes).

La syntaxe de base pour utiliser docker exec exécuter une commande dans des conteneurs est :

docker exec [options] [container] [command]

Commencez par extraire une image Docker si vous ne l'avez pas déjà fait. Par exemple, vous pouvez charger Nginx :

sudo docker pull nginx

Ensuite, exécutez l'image :

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

Répertoriez tous les conteneurs en cours d'exécution à vérifier :

sudo docker ps

Vous devriez maintenant voir votre image nginx-test chargée.

Pour obtenir l'accès et exécuter des commandes dans ce conteneur Docker, saisissez ce qui suit :

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

Maintenant, vous êtes connecté au nginx-test récipient. Par conséquent, toutes les commandes que vous entrez seront exécutées dans ce conteneur. Le –i l'option spécifie interactif , et le –t permet un type de terminal interface.

Méthode 2 :Utilisez la commande docker attach pour vous connecter à un conteneur en cours d'exécution

Le docker attach La commande lie une entrée, une sortie et un flux d'erreurs locaux à un conteneur. Par défaut, il se lance dans un bash coque . Pour vous connecter à un conteneur en cours d'exécution, saisissez ce qui suit :

sudo docker attach container_Name

Dans l'exemple ci-dessous, le système se connectera au nginx-test conteneur :

sudo docker attach nginx-test

Une fois la commande exécutée, vous travaillerez dans le conteneur. Toutes les commandes que vous exécutez affecteront l'environnement Docker virtuel.

Méthode 3 :Utiliser SSH pour se connecter à un conteneur Docker

Vous pouvez vous connecter à un conteneur Docker en utilisant SSH (Secure Shell). Normalement, SSH est utilisé pour se connecter à distance via un réseau à un serveur. La technologie fonctionne de la même manière lors de la connexion à un conteneur Docker virtuel sur votre système.

Étape 1 :Activer SSH sur le système

Commencez par installer et activer le service SSH :

Activer SSH sur Ubuntu 18.04 :

sudo apt-get install ssh

sudo systemctl ssh start

sudo systemctl ssh enable

service ssh status

Activer SSH sur CentOS 7 :

yum –y install openssh-server openssh-clients

service sshd start

service sshd enable

service sshd status

Étape 2 :Obtenir l'adresse IP du conteneur

Obtenez l'adresse IP du conteneur à l'aide de docker inspect commande et filtrer les résultats.

Pour les moteurs Docker modernes, utilisez la commande :

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

Pour les moteurs Docker plus anciens, exécutez :

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

Le système affichera l'adresse IP comme indiqué dans l'image ci-dessus.

Étape 3 :SSH dans le conteneur Docker

Envoyez un ping à l'adresse IP pour vous assurer qu'elle est disponible :

ping –c 3 172.17.0.2

Utilisez l'outil SSH pour vous connecter à l'image :

ssh [email protected]

Le système doit demander un mot de passe à l'utilisateur root pour ce conteneur. S'il indique Connexion refusée , le conteneur n'est probablement pas provisionné pour SSH. Si l'invite change, vous êtes maintenant connecté via SSH et pouvez exécuter des commandes dans le conteneur.


Ubuntu
  1. Comment installer et configurer Docker Container sur Rocky Linux 8

  2. Comment exécuter une commande dans un conteneur Systemd en cours d'exécution ?

  3. Comment exécuter un programme dans un conteneur Docker ?

  4. Comment exécuter MySQL dans un conteneur Docker

  5. Comment exécuter automatiquement des commandes lors de la connexion SSH ?

Comment vérifier si le démon Docker ou un conteneur est en cours d'exécution

Comment exécuter PHPMyAdmin dans un conteneur Docker

Comment exécuter Grafana dans un conteneur Docker

Comment se connecter en SSH aux conteneurs Docker [étape par étape]

Comment exécuter des conteneurs Docker

Comment se connecter en SSH à un conteneur Docker