Machine: Propuesta: Agregar `docker-machine exec`

Creado en 29 abr. 2015  ·  5Comentarios  ·  Fuente: docker/machine

Estos establecerían las variables de entorno y luego ejecutarían el comando. P.ej

docker-machine exec mymachine docker images
docker-machine exec mymachine ./my-docker-wrapper.sh

Comentario más útil

Parece que esto ya es lo que hace ssh ?

docker-machine ssh mymachine -- ifconfig -a
docker-machine ssh mymachine -- docker info
docker-machine ssh mymachine -- "echo uname -a > test && chmod +x test && ./test"

¿Puede explicar cómo sería diferente?

Todos 5 comentarios

Parece que esto ya es lo que hace ssh ?

docker-machine ssh mymachine -- ifconfig -a
docker-machine ssh mymachine -- docker info
docker-machine ssh mymachine -- "echo uname -a > test && chmod +x test && ./test"

¿Puede explicar cómo sería diferente?

No quiero que se ejecute en el host de la ventana acoplable, quiero que se ejecute localmente, pero con la configuración de la ventana acoplable para hablar con el remoto. Básicamente una versión más simple de

bash -c "eval $(docker-machine env mymachine);
docker images
"

No me gusta tanto cambiar mi entorno en mi capa más externa, sigo olvidando que lo hice, y luego, de repente, Docker se comporta de manera diferente y estoy confundido.

Es un poco detallado, pero si quiero ejecutar comandos de ventana acoplable únicos en las máquinas, generalmente uso docker-machine config , que arrojará las banderas docker correctas para la conexión a una máquina determinada:

$ docker $(docker-machine config name) info

También puede escribir un pequeño alias de shell así si es demasiado para escribir:

dkrm () {
    docker $(docker-machine config $1) "${@:2}"
}

Apuntará al cliente Docker a la máquina especificada por el primer argumento y pasará el resto al cliente Docker.

Uso como:

$ dkrm devbox ps
... some containers on the machine "devbox"
$ dkrm staging ps
...some containers on the machine "staging"

¿Eso ayuda?

No estaba al tanto de ese comando, así que gracias por eso. Ayuda, pero no es tan transparente como un comando ejecutivo. Por ejemplo, difícil de usar con docker-compose, fig o cualquier tipo de script contenedor. Tengo uno que crea el Dockerfile a partir de varios archivos en el directorio actual y lo alimenta a través de docker build - .

Podría hacer algo como DOCKER="docker $(docker-machine config mymachine)" ./build.sh y luego tener : ${DOCKER:=docker} en el script. Entonces es viable. Sin embargo, no estoy seguro acerca de docker-compose.

Je, sí, si quieres usar docker-compose , es mejor que establezcas las variables de entorno adecuadas.

¿Fue útil esta página
0 / 5 - 0 calificaciones