Úvod
Docker je nástroj, který vám umožní vytvořit kontejner pro spouštění aplikací. Kontejner Docker je plně uzavřený virtuální stroj.
Tato příručka vám ukáže tři metody pro SSH do kontejneru Docker a spouštění příkazů.
Předpoklady
- Systém Linux se systémem Docker
- Předem nakonfigurované kontejnery načteny a spuštěny
- Přístup k oknu terminálu/příkazovému řádku (Ctrl +Alt +T nebo Ctrl +Alt +F2 )
- Uživatelský účet s sudo privilegia
Metoda 1:Použijte docker exec ke spouštění příkazů v kontejneru Docker
docker exec
příkaz spustí zadaný příkaz v již spuštěném kontejneru. Můžete jej použít k SSH do kontejneru Docker vytvořením bash shellu (shell, kde můžete psát příkazy).
Základní syntaxe pro použití docker exec
spustit příkaz v kontejnerech je:
docker exec [options] [container] [command]
Začněte stažením obrázku Dockeru, pokud jste to ještě neudělali. Můžete například načíst Nginx :
sudo docker pull nginx
Poté spusťte obrázek:
sudo docker run ––name nginx–test –d nginx
Seznam všech běžících kontejnerů k ověření:
sudo docker ps
Nyní byste měli vidět načtený obrázek testu nginx.
Chcete-li získat přístup a spustit příkazy v tomto kontejneru Docker, zadejte následující:
sudo docker exec –it nginx-test /bin/bash
Nyní jste přihlášeni k nginx-testu kontejner. Všechny příkazy, které zadáte, se tedy provedou v tomto kontejneru. –i
volba určuje interaktivní a –t
umožňuje psaní na terminálu rozhraní.
Metoda 2:Pro připojení k běžícímu kontejneru použijte příkaz pro připojení dockeru
docker attach
příkaz spojuje místní vstup, výstup a chybový proud s kontejnerem. Ve výchozím nastavení se spouští v bash shell . Chcete-li se připojit k běžícímu kontejneru, zadejte následující:
sudo docker attach container_Name
V níže uvedeném příkladu se systém připojí k nginx-testu kontejner:
sudo docker attach nginx-test
Po provedení příkazu budete pracovat v kontejneru. Jakékoli příkazy, které spustíte, ovlivní prostředí virtuálního Dockeru.
Metoda 3:Použijte SSH pro připojení ke kontejneru Docker
Ke kontejneru Docker se můžete připojit pomocí SSH (Secure Shell). Normálně se SSH používá pro vzdálené připojení přes síť k serveru. Tato technologie funguje stejně při připojení k virtuálnímu kontejneru Docker ve vašem systému.
Krok 1:Povolte SSH v systému
Začněte instalací a povolením služby SSH:
Povolte SSH na Ubuntu 18.04:
sudo apt-get install ssh
sudo systemctl ssh start
sudo systemctl ssh enable
service ssh status
Povolte SSH na CentOS 7:
yum –y install openssh-server openssh-clients
service sshd start
service sshd enable
service sshd status
Krok 2:Získejte IP adresu kontejneru
Získejte IP adresu kontejneru pomocí docker inspect
příkaz a filtrování výsledků.
Pro moderní motory Docker použijte příkaz:
sudo docker inspect -f "{{ .NetworkSettings.IPAddress }}" container_name
U starších motorů Docker spusťte:
docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name
Systém zobrazí IP adresu, jak je vidět na obrázku výše.
Krok 3:SSH do kontejneru Docker
Odešlete příkaz ping na IP adresu, abyste se ujistili, že je dostupná:
ping –c 3 172.17.0.2
Pro připojení k obrazu použijte nástroj SSH:
ssh [email protected]
Systém by měl požádat o heslo uživatele root pro tento kontejner. Pokud je uvedeno Připojení odmítnuto , kontejner pravděpodobně není zřízen pro SSH. Pokud se výzva změní, jste nyní připojeni přes SSH a můžete spouštět příkazy v kontejneru.