在docker run上使用docker-machine的决策规则

问题描述 投票:0回答:1

当我在Windows环境(使用docker-toolbox安装)中使用docker-machine时,每个docker run命令都使用该docker-machine作为docker守护程序。但是,当我在Linux环境中使用docker-machine时,即使有一个正在运行的docker-machine实例,docker run命令也会使用原生docker守护进程与docker-machine一起安装。

问题是:

  • docker run命令如何决定使用哪个守护进程?
  • 是否有任何方法可以在docker-machine实例上列出正在运行的容器?

对于第二个,我知道我可以SSH到docker-machine实例并在其中查询docker ps,但我想从实例外部检查它。

提前致谢。

docker docker-machine
1个回答
1
投票

Docker Machine堆栈通过启动VM,然后将DOCKER_HOST环境变量设置为指向它来工作。特别是,它还执行TLS加密连接和设置TLS客户端证书以验证调用者所需的设置。 (没有这个设置,远程DOCKER_HOST是非常危险的。)

所以:docker run和其他所有Docker命令都使用DOCKER_HOST环境变量来决定运行的位置。如果DOCKER_HOST指向Docker Machine VM,docker ps将在那里列出容器;你通常不需要docker-machine ssh(虽然当你真的需要它时它是一个有用的工具)。

在本机Linux主机上,直接使用本地Docker守护程序要容易得多。如果您同时拥有本地守护程序和docker-machine VM,则可以

# switch to the Docker Machine VM
eval $(docker-machine env default)

# switch back to the host Docker
eval $(docker-machine env -u)
© www.soinside.com 2019 - 2024. All rights reserved.