2014-11-11 7 views
7

पर किसी अन्य कंटेनर से एक डॉकर कंटेनर में एक ईसी 2 होस्ट पर चल रहा एक डॉकर कंटेनर है, और दूसरा एक और ec2 होस्ट पर चल रहा है। मैं किसी भी पोर्ट नंबर प्रदान किए बिना, एक से दूसरे में कैसे ssh? मैं एसएसएच रूट @ आईपी-एड्रेस-ऑफ-कंटेनरएसएसएच एक अलग मेजबान

+2

ऐसा करने के लिए, आपके दूसरे कंटेनर को एक आईपी पता चाहिए जो पहले कंटेनर से रूका जा सके। चूंकि डॉकर का आउट ऑफ़ द बॉक्स व्यवहार निजी आईपी पते का उपयोग करना है, यह गैर-तुच्छ है। यही कारण है कि लोग बंदरगाह को बाहरी मेजबान पर एक अलग पोर्ट नंबर पर मैप करना चाहते हैं। उदाहरण के लिए बुनाई के लिए 'ओवरले नेटवर्क' का उपयोग करना एक विकल्प है। (मैं बुनाई के लिए काम करता हूं) – Bryan

+1

इसके अलावा, एसएसएच सर्वर को स्थापित करने की आवश्यकता है और कंटेनर के अंदर शुरू किया जाना चाहिए। एसएसएच कंटेनरों में बॉक्स से बाहर काम नहीं करता है जिस तरह से यह एक नियमित distro में करता है। – Dharmit

+0

@ ब्रायन - धन्यवाद! मैं इसे आज़माउंगा! – user1016313

उत्तर

5

पोर्ट पोर्ट 22 पर दूसरे कंटेनर में एसएसएच करने में सक्षम होने के लिए आपको मेजबान ec2 vm के ssh daemon को रास्ते से बाहर करने की आवश्यकता होगी।

  1. एक तरह से अब आप जब आप अपने डोकर कंटेनर चलाने 22:22 -p उपयोग कर सकते हैं/आदि/ssh/sshd_config 3022. की तरह कुछ करने के लिए एक प्रवेश जोड़कर अपने होस्ट मशीन के ssh पोर्ट बदलना है (एस) और उनके बीच ssh करने में सक्षम हो। हालांकि, ec2 उदाहरण ecshing 3022 पर है।

  2. यदि आप पोर्ट 22 पर होस्ट-वीएमएस भी एसएसएच सक्षम रखना चाहते हैं तो आप को दूसरा वर्चुअल ईथरनेट इंटरफ़ेस बनाने की आवश्यकता होगी। यह करना आसान है यदि आप स्थिर आईपी सेट करने में सक्षम हैं। ifconfig eth0:0 192.168.1.11 up जैसे कुछ। हालांकि, ec2 में यह संभव नहीं होगा क्योंकि आपके पास DHCP आधारित आईपी हैं।

  3. तीसरा तरीका गैर मानक पोर्ट को मैप करने के लिए अपनी .ssh/config फ़ाइल को सेट करना है। यह आपको पोर्ट 22 पर ssh करने की अनुमति नहीं देता है लेकिन कम से कम आपको गैर-मानक पोर्ट के बारे में पता नहीं होना चाहिए। यहां एक tutorial है, और प्रासंगिक भाग नीचे हैं।

    # contents of $HOME/.ssh/config 
    Host other_docker 
        HostName ec2-host-name-of-other-docker.com 
        Port 22000 
        User some_user 
    
        # must be added to authorized keys on other docker host for some_user 
        IdentityFile ~/.ssh/this-docker-private-key 
    

अब तुम सिर्फ ssh other_docker