სამუშაოდ დოკერ კონტეინერთან 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
დოკერ კონტეინერთან დაკავშირება IP-ის გამოყენებით sFTP-ზე.
ამისთვის საჭიროა კონტეინერის IP-მისამართის და პორტის განსაზღვრა, რომელზეც გაშვებულია SSH-სერვერი. ამისთვის შეგიძლიათ გამოიყენოთ docker inspect ბრძანება. მაგალითად, თუ კონტეინერი გაშვებულია 2222 პორტზე, შეგიძლიათ გამოიყენოთ შემდეგი ბრძანება IP-მისამართის მისაღებად:
docker inspect --format '{{ .NetworkSettings.IPAddress }}' nginx_latest