2015-05-19 11 views
59

डोकर मशीन संस्करण 0.2.0 डोकर संस्करण 1.6.2डॉकर-मशीन वर्चुअलबॉक्स उदाहरण में ssh कैसे करें?

मैं docker-machine to create a machine using VirtualBox उपयोग कर रहा हूँ। सबकुछ ठीक काम करता है लेकिन मैं मशीन में खुद को एसएसएच करना चाहता हूं और मुझे यह कैसे करना है इस पर कोई निर्देश नहीं मिलता है। मैं ssh पोर्ट से कनेक्ट कर सकते हैं:

ssh $(docker-machine ip dev) 

लेकिन मुझे नहीं पता कि क्या उपयोगकर्ता नाम/पासवर्ड/पहचान फ़ाइल का उपयोग करना है।

+2

आप एक टिप्पणी रखें और यह बताएं कि क्या इस सवाल का साथ कुछ गड़बड़ है और प्रश्नकर्ता में संशोधन करने की अनुमति -1 अगर। –

+0

एक कंटेनर के अंदर कनेक्ट करने के लिए अनुशंसित डॉकर तरीका है 'डॉकर exec -it my_container/bin/bash' दस्तावेज़ देखें https://docs.docker.com/reference/commandline/cli/#exec – user2915097

+0

@ user2915097 प्रश्न था मशीन में एसएसएच खुद को डॉकर कंटेनर नहीं –

उत्तर

89

तुम बस

docker-machine ssh default 

चल (यहाँ "डिफ़ॉल्ट" मेजबान का उपयोग करना)

पहचान फ़ाइलों ~/.docker/machine/machines तहत संग्रहित किया जाना चाहिए द्वारा डोकर मशीन मेजबान में लॉग इन कर सकते हैं। यदि आप किसी कंटेनर में लॉग इन करना चाहते हैं (होस्ट के विपरीत), उपयोगकर्ता2915097 द्वारा सुझाए गए अनुसार docker exec का उपयोग करें।

मैं डोकर उपकरण बॉक्स (डोकर मशीन) के साथ Windows पर हूँ:

21

अंत में, मैं एक जवाब मिल गया।

अगर मैं docker-machine -D ssh default, मुझे लगता है कि SSH पैरामीटर होना चाहिए:

मेजबान: स्थानीय होस्ट
पोर्ट: 51,701
उपयोगकर्ता: डोकर
कुंजी: .docker \ मशीन \ मशीन \ डिफ़ॉल्ट \ id_rsa

जब मैं अपनी पुटी/मोबाएक्सटर सेटिंग्स को मिलान करने के लिए बदलता हूं, वॉयला, मैं कंटेनर में एसएसएच कर सकता हूं।

+0

अरे, धन्यवाद। परिणामों के शीर्ष पर आपका उत्तर मिला। मुझे निराशा के घंटों से बचाया। +1 – f123

+1

जोड़ने के लिए, मेरे मामले में एसएसएच पोर्ट 58361 था। डीडी ध्वज का उपयोग करते समय सभी आवश्यक विवरण मुद्रित किए जाते हैं। 'एसएसएच क्लाइंट प्रकार का उपयोग करना: बाहरी {[-o बैचमोड = हाँ -ओ पासवर्ड प्रमाणीकरण = नहीं -o StrictHostKeyChecking = no -o UserKnownHostsFile =/dev/null -o LogLevel = quiet -o कनेक्शन एट्रेप्ट्स = 3 -o कनेक्टटाइमआउट = 10 -o ControlMaster = no -o ControlPath = none [email protected] -o पहचानएं केवल = yes -i C: \ उपयोगकर्ता \ \। डॉकर \ मशीन \ मशीन \ डिफ़ॉल्ट \ id_rsa -p 58361] सी: \ प्रोग्राम फ़ाइलें \ Git \ usr \ bin \ ssh.exe} ' – rohitmohta

54

यदि आप वास्तव में ssh के माध्यम से यह सब करने की ज़रूरत है, इस डोकर साथ काम कर रहा है 1.8.2

init डोकर:

docker-machine ip default 
:

eval "$(docker-machine env default)" 

अपने डिफ़ॉल्ट डोकर मशीन से आईपी मिलता है

यह प्रिंट इस तरह से प्रिंट करता है: 192.168.99.100

ssh [email protected] 

पासवर्ड tcuser है, लेकिन आप भी पहचान फ़ाइल का उपयोग कर सकते हैं, अन्य जवाब

+5

मैं इस बारे में बहुत उत्सुक हूं कि आपको यह कैसे पता चला कि पासवर्ड' 'tcuser''' है। क्या आप अपना रहस्य प्रकट करेंगे, कृपया? :-) – fmquaglia

+2

कहीं और पाया, लेकिन आप इसे यहां भी देख सकते हैं: https://github.com/docker/machine/search?utf8=%E2%9C%93&q=tcuser – timaschew

+2

यहां विषय के बारे में एक समस्या है: https : //github.com/docker/machine/issues/1615 – timaschew

3

देख किसी कारण से आप बल्कि docker-machine ssh बजाय ssh आदेश का उपयोग करें चाहते हैं तो आप

ssh `docker-machine ip machine_name` -ldocker -i ~/.docker/machine/machines/machine_name/id_rsa 
6

ऐसा कर सकता है वहां हैकर्स, यहां एक स्क्रिप्ट है जो 'सक्रिय' डॉकर मशीन में ssh होगा। यह आपको ssh_key, ssh_port, और ssh_user के मान भी देता है, जिससे स्थानीयहोस्ट और वीएम के बीच rsync जैसी चीजें करना संभव हो जाता है।

#!/bin/bash 
docker_machine_name=$(docker-machine active) 
docker_ssh_user=$(docker-machine inspect $docker_machine_name --format={{.Driver.SSHUser}}) 
docker_ssh_key=$(docker-machine inspect $docker_machine_name --format={{.Driver.SSHKeyPath}}) 
docker_ssh_port=$(docker-machine inspect $docker_machine_name --format={{.Driver.SSHPort}}) 

ssh -i $docker_ssh_key -p $docker_ssh_port [email protected] 

आप इसे अपने टर्मिनल में लाइन के लिए कॉपी और पेस्ट कर सकते हैं, और यह काम करेगा। या, स्क्रिप्ट को फ़ंक्शन में बनाएं, और इसे नाम को तर्क के रूप में फ़ीड करें।

2

मैक OX, मशीन और उसके चाबियाँ यहाँ स्थित हैं के लिए (सुनिश्चित करें कि आप, वहाँ में कुंजी नीचे की तरह कुछ कर:

~/project/dev/docker_notes za$ ls /Users/za/.docker/machine/machines/default/ 
.DS_Store  ca.pem   config.json  disk.vmdk  id_rsa.pub  server-key.pem 
boot2docker.iso cert.pem   default/   id_rsa   key.pem   server.pem 

1) सूची उपलब्ध VMs।

> ~/project/dev/docker_notes za$ docker-machine ls 
>  NAME  ACTIVE DRIVER  STATE  URL       SWARM DOCKER ERRORS 
>  default -  virtualbox Running tcp://192.168.99.100:2376   v1.11.0 

मेरे मामले में, मशीन का नाम डिफ़ॉल्ट है। तो, बस

~/project/dev/docker_notes za$ docker-machine ssh default 


         ##   . 
        ## ## ##  == 
       ## ## ## ## ## === 
      /"""""""""""""""""\___/ === 
     ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~/===- ~~~ 
      \______ o   __/ 
      \ \   __/ 
       \____\_______/ 
_     _ ____  _   _ 
| |__ ___ ___ | |_|___ \ __| | ___ ___| | _____ _ __ 
| '_ \/_ \/_ \| __| __)/_` |/ _ \/__| |//_ \ '__| 
| |_) | (_) | (_) | |_/__/ (_| | (_) | (__| < __/ | 
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_| 
Boot2Docker version 1.11.0, build HEAD : 32ee7e9 - Wed Apr 13 20:06:49 UTC 2016 
Docker version 1.11.0, build 4dc5990 
[email protected]:~$ vi 
.ash_history .ashrc  .docker/  .local/  .profile  .ssh/   log.log 
[email protected]:~$ ls 
log.log 

जैसा कि आप देख सकते हैं, मैं डॉकर-मशीन/इंस्टेंस में ssh करने में सक्षम हूं।

आप भी इस का पालन कर सकते>howto - docker

संबंधित मुद्दे