2015-05-19 13 views
59

phiên bản docker-máy 0.2.0 phiên bản docker 1.6.2Làm thế nào để ssh vào docker-máy VirtualBox dụ?

Tôi đang sử dụng docker-machine to create a machine using VirtualBox. Tất cả mọi thứ hoạt động tốt nhưng tôi muốn ssh vào máy chính nó và tôi không tìm thấy hướng dẫn về cách làm điều này. Tôi có thể kết nối với cổng ssh:

ssh $(docker-machine ip dev) 

Nhưng tôi không biết tên người dùng/mật khẩu/tệp nhận dạng để sử dụng.

+2

Nếu bạn -1 đặt một bình luận và giải thích những gì là sai với câu hỏi này và cho phép hỏi đã sửa đổi. –

+0

cách docker được đề xuất để kết nối bên trong một thùng chứa là 'docker exec -it my_container/bin/bash' xem doc https://docs.docker.com/reference/commandline/cli/#exec – user2915097

+0

@ user2915097 Câu hỏi đặt ra là ssh vào máy chính nó không phải là một docker container –

Trả lời

89

Bạn có thể đăng nhập vào host Docker máy bằng cách chỉ chạy

docker-machine ssh default 

(Sử dụng "mặc định" chủ ở đây)

Các tập tin bản sắc nên được lưu trữ dưới ~/.docker/machine/machines. Nếu bạn muốn đăng nhập vào một vùng chứa (trái ngược với máy chủ), hãy sử dụng docker exec như được đề xuất bởi user2915097.

21

Cuối cùng, tôi đã tìm thấy câu trả lời:

Tôi đang sử dụng Windows với Docker Toolbox (Docker Machine).

Nếu tôi docker-machine -D ssh default, tôi thấy rằng các thông số SSH nên là:

Host: localhost
Cảng: 51.701
User: Docker
chính: .docker \ máy \ máy \ default \ id_rsa

Khi tôi thay đổi cài đặt Putty/MobaXterm của mình để khớp, thì đấy, tôi có thể SSH vào vùng chứa.

+0

Xin cảm ơn. Tìm thấy câu trả lời của bạn ở đầu kết quả. Đã cứu tôi khỏi những giờ thất vọng. +1 – f123

+1

Để thêm, trong trường hợp của tôi, cổng SSH là 58361. Tất cả các chi tiết bắt buộc được in khi sử dụng cờ -D. 'Sử dụng kiểu máy khách SSH: bên ngoài {[-o BatchMode = yes -o PasswordAuthentication = no -o StrictHostKeyChecking = no -o UserKnownHostsFile =/dev/null -o LogLevel = quiet -o ConnectionAttempts = 3 -o ConnectTimeout = 10 -o ControlMaster = no -o ControlPath = none [email protected] -o IdentitiesOnly = yes -i C: \ Users \ \ .docker \ machine \ machines \ default \ id_rsa -p 58361] C: \ Program Files \ Git \ usr \ bin \ ssh.exe} ' – rohitmohta

54

nếu bạn thực sự cần phải làm điều đó thông qua ssh, điều này đang làm việc với Docker 1.8.2

init Docker:

eval "$(docker-machine env default)" 

nhận được IP từ máy Docker mặc định của bạn:

docker-machine ip default 

bản in này có dạng như sau: 192.168.99.100

ssh [email protected] 

mật khẩu là tcuser nhưng bạn cũng có thể sử dụng các tập tin nhận dạng, xem câu trả lời khác

+5

Tôi rất tò mò về cách bạn biết rằng mật khẩu là' '' tcuser'''. Bạn sẽ tiết lộ bí mật của bạn, xin vui lòng? :-) – fmquaglia

+2

được tìm thấy ở một nơi khác, nhưng bạn cũng có thể thấy ở đây: https://github.com/docker/machine/search?utf8=%E2%9C%93&q=tcuser – timaschew

+2

đây là vấn đề về chủ đề: https : //github.com/docker/machine/issues/1615 – timaschew

3

Nếu vì một số lý do bạn muốn sử dụng lệnh ssh hơn docker-machine ssh, bạn có thể làm

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

Đối các tin tặc ra khỏi đó, đây là một kịch bản mà sẽ ssh vào 'docker' máy 'hoạt động'. Điều này cũng cung cấp cho bạn các giá trị cho ssh_key, ssh_port và ssh_user, làm cho nó có thể thực hiện những việc như rsync giữa máy chủ cục bộ và máy ảo.

#!/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] 

Bạn có thể sao chép và dán nội dung đó vào thiết bị đầu cuối, dòng của bạn và nó sẽ hoạt động. Hoặc, làm cho tập lệnh thành một hàm và đặt tên cho nó làm đối số.

2

Đối mac OX, máy và các phím của nó được đặt ở đây (chắc chắn rằng bạn có các phím trong đó, một cái gì đó giống như dưới đây:

~/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) danh sách vms sẵn.

> ~/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 

Trong trường hợp của tôi, tên máy mặc định. Vì vậy, chỉ cần

~/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 

Như bạn có thể thấy, tôi có thể ssh vào docker-machine/instance.

Bạn cũng có thể làm theo này>howto - docker

Các vấn đề liên quan