opened image

Jak połączyć się z kontenerem Docker za pomocą SFTP?

Podłączenie do kontenera Docker za pomocą sFTP może być przydatne dla programistów, którzy pracują z plikami wewnątrz kontenera. Na przykład, jeśli tworzysz aplikację internetową i chcesz przesłać pliki na serwer, możesz podłączyć się do kontenera za pomocą sFTP i przesłać pliki na serwer z Twojego środowiska programistycznego.
Dodatkowo, podczas podłączania do kontenera Docker za pomocą sFTP, można korzystać z różnych funkcji sFTP do zarządzania plikami. 



Wdrażanie kontenera Docker za pomocą sFTP.



Aby podłączyć się do kontenera Docker za pomocą sFTP, najpierw musisz utworzyć kontener, który zostanie uruchomiony na zdalnym serwerze. Możesz to zrobić za pomocą polecenia docker run. Na przykład, aby uruchomić kontener z nginx na porcie 2222 i zainstalować OpenSSH, możesz użyć następujących poleceń:
 

docker run -d -p 2222:22 --name nginx_latest nginx

 

docker exec -it nginx_latest apt-get update

 

docker exec -it nginx_latest apt-get install -y openssh-server



 

Te polecenia utworzą nowy kontener o nazwie "nginx_latest" na podstawie obrazu Nginx i zainstalują OpenSSH wewnątrz kontenera. 



Ustawienie hasła dla wybranego użytkownika.

Ustaw hasło dla root (lub innego użytkownika, z którym chcesz się połączyć), wykonując polecenie:

 

 

 

docker exec -it nginx_latest passwd root

 


Wprowadź hasło dwukrotnie.
 


 

 

  • Edytuj plik /etc/ssh/sshd_config w kontenerze, zamieniając PermitRootLogin without-password na PermitRootLogin yes. Aby się do niego podłączyć i go edytować, użyj następującego polecenia:

 

docker exec -it nginx_latest bash


 

Użyj ulubionego edytora. Jeśli go nie masz, zainstaluj go.



 

 

  • Zrestartuj serwer ssh, wykonując polecenie:

 

 

/etc/init.d/ssh restart



 

Podłączanie się do kontenera Docker za pomocą IP przy użyciu sFTP.




Aby to zrobić, musisz najpierw określić adres IP kontenera i port, na którym uruchomiony jest serwer SSH. Można to zrobić za pomocą polecenia docker inspect. Na przykład, jeśli kontener jest uruchomiony na porcie 2222, można użyć następującego polecenia, aby uzyskać adres IP:

 

 

 

docker inspect --format '{{ .NetworkSettings.IPAddress }}' nginx_latest

 




 

To polecenie zwróci adres IP kontenera. Następnie można podłączyć się do kontenera za pomocą sFTP, używając danych logowania użytkownika ustawionych wewnątrz kontenera. Na przykład za pomocą polecenia sftp:

 

 

 

 

sftp [email protected]

 


 

Gdzie root- nazwa użytkownika ustawionego wewnątrz kontenera, a ip-address - adres IP kontenera (172.17.0.4), uzyskany za pomocą polecenia docker inspect.




 

Podłączanie się za pomocą FileZilla.

 

  1. W menu "Plik" wybierz "Zarządzaj stronami" (lub użyj skrótu klawiaturowego "Ctrl+S").

  2. W oknie "Zarządzaj stronami" kliknij przycisk "Nowa strona" i wprowadź nazwę swojej strony.
  3. W polach "Host", "Port", "Nazwa użytkownika" i "Hasło" wprowadź odpowiednie wartości, korzystając z informacji z Twojego kontenera Docker. Domyślnie nazwa użytkownika to "root", a port to "2222".
  4. W rozwijanej liście "Protokół" wybierz "SFTP - SSH File Transfer Protocol".
  5. Kliknij "Połącz". Jeśli wszystkie ustawienia są poprawne, powinieneś być podłączony do swojego kontenera Docker za pomocą sFTP za pośrednictwem klienta sFTP.

 


 

 

Teraz będziesz mógł podłączyć się do kontenera Docker za pomocą sFTP, przesyłać pliki i wykonywać inne operacje na plikach na zdalnym serwerze.

Sugerujemy również rozważenie innych przydatnych artykułów: