Machine: 提议:添加`docker-machine exec`

创建于 2015-04-29  ·  5评论  ·  资料来源: docker/machine

这些将设置环境变量,然后执行命令。 例如

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

最有用的评论

听起来这已经是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"

你能详细说明这会有什么不同吗?

所有5条评论

听起来这已经是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"

你能详细说明这会有什么不同吗?

我不希望它在 docker 主机上运行,​​我希望它在本地运行,但是使用 docker setup 与远程主机通信。 基本上是一个更简单的版本

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

我不太喜欢在最外层的外壳中改变我的环境,我一直忘记我已经完成了,然后突然 docker 的行为不同了,我很困惑。

这有点冗长,但如果我想在机器上运行一次性 docker 命令,我通常使用docker-machine config ,它将吐出正确的docker标志以连接到给定的机器:

$ docker $(docker-machine config name) info

如果输入太多,您也可以像这样编写一个小的 shell 别名:

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

它将 Docker 客户端指向第一个参数指定的机器,并将其余部分传递给 Docker 客户端。

用法如:

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

这有帮助吗?

我不知道那个命令,所以谢谢你。 它确实有帮助,但它不像 exec 命令那样透明。 例如难以与 docker-compose、fig 或任何类型的包装脚本一起使用。 我有一个从当前目录中的几个文件中构建 Dockerfile 并通过docker build -提供它。

我可以做一些类似DOCKER="docker $(docker-machine config mymachine)" ./build.sh事情,然后在脚本中加入: ${DOCKER:=docker} 。 所以是可行的。 虽然不确定 docker-compose。

嘿,是的,如果你想使用docker-compose你最好设置适当的环境变量。

此页面是否有帮助?
0 / 5 - 0 等级