Jak połączyć się z kontenerem Docker za pośrednictwem SSH

Jak połączyć się z kontenerem Docker za pośrednictwem SSH

Po zainstalowaniu Docker w Fedora, Almalinux, Manjaro lub innym dystrybucji, czas zainstalować więcej kontenerów. Po uruchomieniu kontenera Docker w systemie Linux, jedną z rzeczy, które prawdopodobnie musisz zrobić, jest uruchomienie poleceń wewnątrz pojemnika. Pozwala to korzystać z pojemnika podobnie do tego, jak byłbyś maszyną fizyczną, z tym wyjątkiem, że Docker wykonał dla nas większość nóg konfiguracji.

Dostępne są już dwa polecenia, które pozwalają nam uruchamiać polecenia na kontenerze Docker. Pierwszy jest Docker Exec, a drugie polecenie, które pozwala nam dołączyć do działającego pojemnika, jest Docker dołącz. Te polecenia zwykle wystarczą, ale możesz znaleźć się w scenariuszu, w którym wolisz używać SSH do połączenia się z kontenerem Docker i zarządzać nim.

Nie wszystkie kontenery Docker są udostępniane do uruchomienia SSH. Zwykle kontenery Docker są bardzo lekkie i zaprogramowane tylko do zrobienia jednej rzeczy. Jednak niektóre kontenery Docker pozwolą SSH, a to może znacznie ułatwić zarządzanie kontenerem. W tym przewodniku zobaczymy, jak połączyć się z kontenerem Docker za pośrednictwem SSH z systemu hosta w wierszu poleceń Linux.

W tym samouczku nauczysz się:

  • Jak połączyć się z działającym kontenerem Docker za pośrednictwem SSH
Łączenie z działającym kontenerem Docker przez SSH na Linux Wymagania oprogramowania i konwencje linii poleceń Linux
Kategoria Wymagania, konwencje lub wersja oprogramowania
System Każda dystrybucja Linux
Oprogramowanie Doker
Inny Uprzywilejowany dostęp do systemu Linux jako root lub za pośrednictwem sudo Komenda.
Konwencje # - Wymaga, aby podane polecenia Linux są wykonywane z uprawnieniami root bezpośrednio jako użytkownik root lub za pomocą sudo Komenda
$ - Wymaga, aby podane polecenia Linux zostały wykonane jako zwykły użytkownik niepewny

Połącz się z kontenerem Docker za pośrednictwem SSH



W tym przykładzie zainstalowaliśmy już Docker i obraz Nginx za pomocą Docker Pull Nginx Komenda. Postępuj zgodnie z poniższymi instrukcjami krok po kroku, aby zobaczyć, w jaki sposób określamy adres IP kontenera, a następnie użyć polecenia SSH, aby połączyć się z działającym kontenerem.

  1. Po pierwsze, kontener Docker musi działać aktywnie. Upewnij się, że już go zacząłeś, używając następującego polecenia. Zwróć uwagę jeszcze raz, że używamy obrazu Nginx, ale możesz zastąpić nazwę własnego obrazu w tym poleceniu i przyszłych poleceń.
    $ Docker Run -Nazwa nginx -d nginx 
  2. Sprawdź, czy pojemnik działa, a także nazwa pojemnika, z tym poleceniem.
    $ Docker Ps 
  3. Przeglądanie aktualnie działających kontenerów Docker w naszym systemie
  4. Możemy teraz użyć następującego polecenia, aby określić adres IP naszego kontenera Nginx.
    $ Docker Inspect -f " .Ustawienia sieci.Ipaddress "nginx 


  5. Tutaj określamy adres IP kontenera Docker, w którym chcemy SSH
  6. W naszym przypadku kontener Nginx ma adres IP 172.17.0.2. Możemy teraz spróbować połączyć się z tym adresem IP za pośrednictwem SSH i konta głównego.
    $ ssh [email protected] 

    W tym momencie albo pomyślnie połączysz się z działającym kontenerem, albo otrzymasz błąd „Odmówienie połączenia”. W przypadku błędu kontynuuj następujące kroki, aby skonfigurować serwer SSH na kontenerze.

  7. Jeśli SSH nie działa, musimy upewnić się, że oprogramowanie jest zainstalowane na kontenerze. Podłącz się do kontenera z następującym poleceniem.
    $ Docker Exec -it nginx /bin /bash 
  8. Następnie zainstaluj na nim SSH. Używamy trafny Menedżer pakietów w tym przykładzie, ale może być konieczne dostosowanie polecenia, jeśli kontener korzysta z innego menedżera pakietów.
    # apt aktualizacja && apt -y instaluj openSsh -server 
  9. Następnie skonfiguruj kontener, abyśmy mogli zalogować się do konta głównego za pośrednictwem SSH.
    # echo "Percitrootlogin Tak" >>/etc/ssh/sshd_config 
  10. Nie zapomnij zmienić hasła root, abyś mógł się zalogować.
    # passwd 
  11. Na koniec rozpocznij usługę SSH na kontenerze.
    # /etc /init.D/ssh start 
  12. Teraz będziesz mógł ssh z komputera hosta, określając określony wcześniej adres IP, i używając hasła roota, dla którego właśnie skonfigurowałeś hasło.
    $ ssh [email protected] 


  13. Możemy teraz z powodzeniem SSH do kontenera Docker

To wszystko. Teraz możesz połączyć się z działającym kontenerem za pośrednictwem SSH, aby uruchomić polecenia i zarządzać nim. Oczywiście metoda stosowania Docker Exec Dowództwo powinno również kontynuować pracę i może osiągnąć to samo.

Zamykanie myśli

W tym przewodniku widzieliśmy, jak połączyć się z działającym kontenerem Docker z systemu hosta za pośrednictwem SSH. Docker daje nam już wiele sposobów połączenia się z kontenerem, ale możliwość SSH do kontenerów może być przyjemna w niektórych sytuacjach. Trudna część polega na tym, że większość kontenerów nie ma jeszcze zainstalowanej SSH, ponieważ zwykle są one skonfigurowane z absolutnymi wymaganiami. To wymaga kilku dodatkowych kroków z naszej strony, ale jak tu widziałeś, nie jest to trudne do zrobienia.

Powiązane samouczki Linux:

  • Instalacja Manjaro Linux
  • Przewodnik dla początkujących Manjaro Linux
  • Manjaro Linux Windows 10 Dual Boot
  • Jak migrować z Centos do Almalinux
  • Zainstaluj Manjaro w VirtualBox
  • Instalacja Almalinux
  • Jak skonfigurować serwer FTP/SFTP i klient na Almalinux
  • Rzeczy do zainstalowania na Ubuntu 20.04
  • Zainstaluj Manjaro Architect Edition
  • Utwórz bootabilne USB Manjaro Linux