hub - docker-machine create
¿Cómo ssh en la instancia de docker-machine VirtualBox? (6)
Finalmente encontré una respuesta:
Estoy en Windows con Docker Toolbox (Docker Machine).
Si
docker-machine -D ssh default
, encuentro que los parámetros SSH deberían ser:
Anfitrión: localhost
Puerto: 51701
Usuario: docker
Clave: .docker / machine / machines / default / id_rsa
Cuando cambio la configuración de Putty / MobaXterm para que coincida, listo, puedo usar SSH en el contenedor.
docker-machine versión 0.2.0 docker versión 1.6.2
Estoy usando docker-machine para crear una máquina usando VirtualBox . Todo funciona bien, pero me gustaría meterme en la máquina y no encuentro instrucciones sobre cómo hacerlo. Puedo conectarme al puerto ssh:
ssh $(docker-machine ip dev)
Pero no tengo idea de qué nombre de usuario / contraseña / archivo de identidad usar.
Para los piratas informáticos, aquí hay un script que se introducirá en la máquina docker ''activa''.
Esto también le proporciona los valores para ssh_key, ssh_port y ssh_user, lo que permite hacer cosas como
rsync
entre el localhost y la VM.
#!/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
Puede copiar y pegar eso en su terminal, línea por línea, y funcionará. O bien, convierta el script en una función y alimente el nombre como argumento.
Para mac OX, la máquina y sus claves se encuentran aquí (asegúrese de tener las claves allí, algo como lo siguiente:
~/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) lista de vms disponibles.
> ~/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
En mi caso, el nombre de la máquina es el predeterminado. Por lo que sólo
~/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
Como puede ver, puedo ingresar a 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
También puedes seguir esto> howto - docker
Puede iniciar sesión en los hosts de la máquina acoplable simplemente ejecutando
docker-machine ssh default
(Usando el host "predeterminado" aquí)
Los archivos de identidad deben almacenarse en
~/.docker/machine/machines
.
Si desea iniciar sesión en un contenedor (en lugar del host), use
docker exec
como lo sugiere el usuario 2915097.
Si por alguna razón prefiere usar el comando
ssh
lugar de
docker-machine ssh
, puede hacerlo
ssh `docker-machine ip machine_name` -ldocker -i ~/.docker/machine/machines/machine_name/id_rsa
si realmente necesita hacerlo a través de
ssh
, esto está funcionando con docker 1.8.2
ventana acoplable init:
eval "$(docker-machine env default)"
obtenga la IP de su máquina acoplable predeterminada:
docker-machine ip default
esto imprime algo como esto:
192.168.99.100
la contraseña es
tcuser
pero también puede usar el archivo de identidad, vea otra respuesta