我刚刚安装了一台带有 docker-daemon 的 Ubuntu 机器,并且我能够运行 docker 容器,之后我安装了 docker-machine 并使用 docker2boot 配置了一台 ESX 机器,运行时我可以看到这个主机docker-machine ls
。
然而问题是,当我运行此命令时,我只能看到 ESX docker 主机,而没有列出本地 docker daemon docker-machine ls
。
所以现在我的问题是,如何将我的本地 docker-daemon 添加到 docker-machine,以便当我运行时docker-machine ls
,我可以看到我的本地守护进程作为默认 docker 引擎?
答案1
通常您不需要添加本地守护进程,docker-machine
因为该工具主要用于创建/配置启用 Docker 的主机并管理连接到这些远程守护进程所需的环境变量:
$ env | grep DOCKER
DOCKER_HOST=tcp://192.168.99.100:2376
DOCKER_MACHINE_NAME=default
DOCKER_TLS_VERIFY=1
DOCKER_CERT_PATH=/Users/deizel/.docker/machine/machines/default
要连接到本地安装的守护进程,您可以取消设置这些环境变量:
unset DOCKER_TLS_VERIFY
unset DOCKER_CERT_PATH
unset DOCKER_MACHINE_NAME
unset DOCKER_HOST
或者在 Bash 中,只需运行unset ${!DOCKER_*}
。
话虽如此,你使用该驱动程序可能还是有好处的none
。例如:
$ docker-machine create -d 'none' --url http://localhost:2375 default
Running pre-create checks...
Creating machine...
To see how to connect your Docker Client to the Docker Engine running on this virtual machine, run: docker-machine env default
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
default - none Running http://localhost:2375 Unknown Unable to query docker version: Cannot connect to the docker engine endpoint
(我使用的是 MacOS,所以现在无法真正测试它。)