GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come eseguire SSH in un contenitore Docker in esecuzione ed eseguire comandi

Introduzione

Docker è un'utilità che ti consente di creare un contenitore per l'esecuzione di applicazioni. Un container Docker è una macchina virtuale completamente contenuta.

Questa guida ti mostrerà tre metodi per SSH in un container Docker ed eseguire comandi.

Prerequisiti

  • Un sistema Linux che esegue Docker
  • Contenitori preconfigurati caricati e in esecuzione
  • Accesso a una finestra del terminale/prompt dei comandi (Ctrl +Alt +T o CTRL +Alt +F2 )
  • Un account utente con sudo privilegi

Metodo 1:usa docker exec per eseguire comandi in un contenitore Docker

Il docker exec comando esegue un comando specificato all'interno di un contenitore già in esecuzione. Puoi usarlo per SSH in un container Docker creando una shell bash (una shell in cui puoi digitare comandi).

La sintassi di base per l'utilizzo di docker exec per eseguire un comando nei contenitori è:

docker exec [options] [container] [command]

Inizia tirando un'immagine Docker se non l'hai già fatto. Ad esempio, puoi caricare Nginx :

sudo docker pull nginx

Quindi, esegui l'immagine:

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

Elenca tutti i contenitori in esecuzione da verificare:

sudo docker ps

Ora dovresti vedere la tua immagine nginx-test caricata.

Per ottenere l'accesso ed eseguire comandi in quel contenitore Docker, digita quanto segue:

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

Ora hai effettuato l'accesso al nginx-test contenitore. Pertanto, tutti i comandi immessi verranno eseguiti in quel contenitore. Il –i l'opzione specifica interattivo e il –t abilita una digitazione terminale interfaccia.

Metodo 2:utilizzare il comando di collegamento Docker per connettersi a un container in esecuzione

Il docker attach comando collega un flusso di input, output e errore locale a un contenitore. Per impostazione predefinita, si avvia in una bash conchiglia . Per connetterti a un container in esecuzione, inserisci quanto segue:

sudo docker attach container_Name

Nell'esempio seguente, il sistema si connetterà al nginx-test contenitore:

sudo docker attach nginx-test

Una volta eseguito il comando, lavorerai nel contenitore. Qualsiasi comando eseguito influirà sull'ambiente Docker virtuale.

Metodo 3:usa SSH per connetterti a un contenitore Docker

Puoi connetterti a un container Docker utilizzando SSH (Secure Shell). Normalmente, SSH viene utilizzato per connettersi in remoto su una rete a un server. La tecnologia funziona allo stesso modo quando ci si connette a un contenitore Docker virtuale sul sistema.

Passaggio 1:abilita SSH sul sistema

Inizia installando e abilitando il servizio SSH:

Abilita SSH su Ubuntu 18.04:

sudo apt-get install ssh

sudo systemctl ssh start

sudo systemctl ssh enable

service ssh status

Abilita SSH su CentOS 7:

yum –y install openssh-server openssh-clients

service sshd start

service sshd enable

service sshd status

Passaggio 2:ottieni l'indirizzo IP del contenitore

Ottieni l'indirizzo IP del contenitore utilizzando docker inspect comando e filtrando i risultati.

Per i moderni motori Docker, usa il comando:

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

Per i motori Docker meno recenti, esegui:

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

Il sistema visualizzerà l'indirizzo IP come mostrato nell'immagine sopra.

Fase 3:SSH nel contenitore Docker

Esegui il ping dell'indirizzo IP per assicurarti che sia disponibile:

ping –c 3 172.17.0.2

Usa lo strumento SSH per connetterti all'immagine:

ssh [email protected]

Il sistema dovrebbe richiedere una password dell'utente root per quel contenitore. Se dice Connessione rifiutata , probabilmente non è stato eseguito il provisioning del contenitore per SSH. Se il prompt cambia, ora sei connesso tramite SSH e puoi eseguire comandi nel contenitore.


Ubuntu
  1. Come installare e configurare Docker Container su Rocky Linux 8

  2. Come eseguire un comando all'interno di un contenitore Systemd in esecuzione?

  3. Come eseguire un programma all'interno di un contenitore Docker?

  4. Come eseguire MySQL in un contenitore Docker

  5. Come eseguire un comando su un contenitore Docker in esecuzione

Come verificare se il demone Docker o un container è in esecuzione

Come eseguire PHPMyAdmin in un contenitore Docker

Come eseguire Grafana in un contenitore Docker

Come eseguire SSH nei contenitori Docker [Passo dopo passo]

Come eseguire i contenitori Docker

Come SSH in un Docker Container