Как ssh в экземпляр Docker-machine VirtualBox?
docker-версия машины 0.2.0 докер версии 1.6.2
Я использую docker-машина для создания машины с помощью VirtualBox. Все работает нормально, но я хотел бы ssh в самой машине, и я не нахожу никаких инструкций о том, как это сделать. Я могу подключиться к порту ssh:
ssh $(docker-machine ip dev)
но я понятия не имею, какое имя пользователя / пароль / идентификационный файл использовать.
6 ответов:
вы можете войти в Docker-machine hosts, просто запустив
docker-machine ssh default
(используя хост "по умолчанию" здесь)
идентификационные файлы должны храниться под
~/.docker/machine/machines
. Если вы хотите войти в контейнер (в отличие от хозяина), используйтеdocker exec
как предложено user2915097.
если вам действительно нужно сделать это через
ssh
, это работает с докер 1.8.2настройки инициализации:
eval "$(docker-machine env default)"
получить IP-адрес от вашего компьютера docker по умолчанию:
docker-machine ip default
это выводит что-то вроде этого:
192.168.99.100
ssh docker@192.168.99.100
пароль
tcuser
но вы также можете использовать файл идентификации, см. другой ответ
наконец, я нашел ответ :
Я нахожусь в Windows с Docker Toolbox (Docker Machine).
Если Я
docker-machine -D ssh default
, Я считаю, что параметры SSH должны быть:хост: localhost
Порт : 51701
Пользователь: docker
Ключевой. : docker\machine\machines\default\id_rsaкогда я изменяю свои настройки Putty / MobaXterm, чтобы соответствовать, вуаля, я могу SSH в контейнер.
для хакеров там, вот скрипт, который будет 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 $docker_ssh_user@localhost
вы можете скопировать и вставить это в свой терминал, строка за строкой, и он будет работать. Или превратите скрипт в функцию и передайте ему имя в качестве аргумента.
Если по какой-то причине вы предпочитаете использовать , а не
docker-machine ssh
, вы можете сделатьssh `docker-machine ip machine_name` -ldocker -i ~/.docker/machine/machines/machine_name/id_rsa
для mac 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) список доступных виртуальных машин.
> ~/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 docker@default:~$ vi .ash_history .ashrc .docker/ .local/ .profile .ssh/ log.log docker@default:~$ ls log.log
как вы можете видеть, я могу ssh в docker-machine / instance.
docker@default:~$ uname -a Linux default 4.1.19-boot2docker #1 SMP Thu Apr 7 02:41:05 UTC 2016 x86_64 GNU/Linux
вы также можете следовать этому > howto-docker