სამუშაოდ დოკერ კონტეინერთან sFTP-ზე დაკავშირება შეიძლება სასურველი იყოს პროგრამისტებისთვის, რომლებიც ფაილებს სამუშაოდ გამოიყენებენ კონტეინერში. მაგალითად, თუ თქვენ ვებ-აპლიკაციას გააჩნიათ და გსურთ ფაილები ატვირთოთ სერვერზე, შეგიძლიათ sFTP-ზე დაკავშირება და ფაილები ატვირთოთ სერვერზე თქვენი გამოსახულების გარეშე.
დამატებითისად, sFTP-ზე დოკერ კონტეინერთან დაკავშირებისას, შეგიძლიათ გამოიყენოთ სხვადასხვა sFTP ფუნქციები ფაილების მართვისთვის.
დოკერ კონტეინერის განაწილება sFTP-ზე.
დოკერ კონტეინერთან sFTP-ზე დაკავშირებისთვის საწყისად საჭიროა კონტეინერის შექმნა, რომელიც გაშვებული იქნება რემოტ სერვერზე. ამისთვის შეგიძლიათ გამოიყენოთ docker run ბრძანება. მაგალითად, კონტეინერის გაშვებისთვის nginx-ის კონტეინერის გაშვებისას 2222 პორტზე და OpenSSH-ის დაყენებისას შეგიძლიათ გამოიყენოთ შემდეგი ბრძანებები:
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
ეს ბრძანებები შექმნის ახალ კონტეინერს, რომელიც გარდაიქმნება "nginx_latest" და დაყენებს OpenSSH-ს კონტეინერში.
დაყენებისთვის აირჩიეთ პაროლი არჩეულ მომხმარებლად.
დააყენეთ პაროლი root-ისთვის (ან ნებისმიერი სხვა მომხმარებელისთვის, რომელთანაც გსურთ დაკავშირება), შემდეგი ბრძანების გაშვებით:
docker exec -it nginx_latest passwd root
შეიყვანეთ პაროლი ორჯერ.
- რედაქტირებადიათ კონტეინერში ფაილი /etc/ssh/sshd_config, შეცვლილია PermitRootLogin without-password რომელიც უნდა შეცვალოთ PermitRootLogin yes. რომ დაკავშირდეთ და შეცვალოთ ის, გამოიყენეთ შემდეგი ბრძანება:
docker exec -it nginx_latest bash
გამოიყენეთ სასურველი რედაქტორი. თუ არ გაქვთ, დააყენეთ იგი.
- შეარჩიეთ ssh-სერვერის გადატვირთვისას ბრძანება:
/etc/init.d/ssh restart
შემომეხმარება Docker კონტეინერზე IP-სთვის SFTP-საშუალებით.
ამისათვის, საჭიროა განსაზღვროთ კონტეინერის IP მისამართი და პორტი, სადაც გაშვებულია SSH სერვერი. ეს შეიძლება გაკეთებულია docker inspect ბრძანებით. მაგალითად, თუ კონტეინერი გაშვებულია პორტზე 2222, შეგიძლიათ გამოიყენოთ შემდეგი ბრძანება IP მისამართის მისამართისთვის:
docker inspect --format '{{ .NetworkSettings.IPAddress }}' nginx_latest
ეს ბრძანება დააბრუნებს IP მისამართს. შემდეგ შეგიძლიათ შემოხმარობა გამოგიყენოთ sFTP-ის საშუალებით კონტეინერთან შემომეხმარებითად დაყენებული მომხმარებლის ინფორმაციას. მაგალითად, კომანდით sftp:
sftp [email protected]
სადაც root- კონტეინერში დაყენებული მომხმარებელის სახელია, ხოლო ip-address - კონტეინერის IP მისამართი (172.17.0.4), რომელსაც შემდეგი ბრძანებით docker inspect მიიღებთ.
შეერთეთ FileZilla-ს საშუალებით.
-
ფაილზილასსთან შეერთეთ ბრძანება "ფაილი"-ში დაარჩიეთ "საიტების მართვა" (ან გამოიყენეთ "Ctrl+S" მაჩვენებელი).
- შეარჩიეთ "საიტების მართვა"-ში დააჭირეთ "ახალი საიტი" და შეიყვანეთ თქვენი საიტის სახელი.
- შეიყვანეთ "ჰოსტი", "პორტი", "მომხმარებლის სახელი" და "პაროლი" თქვენი Docker კონტეინერიდან წამოიყვანეთ საშუალებით. ნაგულისხმევად, მომხმარებლის სახელი არის "root", ხოლო პორტი არის "2222".
- შეარჩიეთ "პროტოკოლი"-ში "SFTP - SSH File Transfer Protocol".
- დააჭირეთ "დაკავშირება". თუ ყველა პარამეტრი სწორია, თქვენ უნდა შეხვდეთ თქვენს Docker კონტეინერზე SFTP-კლიენტის საშუალებით.
ჩვენ ასევე გირჩევთ გაითვალისწინოთ სხვა სასარგებლო სტატიები: