შესვლა
    opened image

    სამუშაოდ დოკერ კონტეინერთან 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-ს საშუალებით.

     

    1. ფაილზილასსთან შეერთეთ ბრძანება "ფაილი"-ში დაარჩიეთ "საიტების მართვა" (ან გამოიყენეთ "Ctrl+S" მაჩვენებელი).

    2. შეარჩიეთ "საიტების მართვა"-ში დააჭირეთ "ახალი საიტი" და შეიყვანეთ თქვენი საიტის სახელი.
    3. შეიყვანეთ "ჰოსტი", "პორტი", "მომხმარებლის სახელი" და "პაროლი" თქვენი Docker კონტეინერიდან წამოიყვანეთ საშუალებით. ნაგულისხმევად, მომხმარებლის სახელი არის "root", ხოლო პორტი არის "2222".
    4. შეარჩიეთ "პროტოკოლი"-ში "SFTP - SSH File Transfer Protocol".
    5. დააჭირეთ "დაკავშირება". თუ ყველა პარამეტრი სწორია, თქვენ უნდა შეხვდეთ თქვენს Docker კონტეინერზე SFTP-კლიენტის საშუალებით.