在我可以使用我的docker
容器之前(在OSX上使用Boot2Docker)我总是要记得输入
export DOCKER_HOST=tcp://$(boot2docker ip 2>/dev/null):2375
在我的终端,自然我经常忘记这一点.
所以我想我只是将该行添加到我的~/.bashrc
文件中,但是当我完成此操作并检查DOCKER_HOST
它的值tcp://192.168.42.43:4243
而不是tcp://192.168.42.43:2375
.
打破它:
boot2docker ip
>"VM的主机唯一接口IP地址是:192.168.59.103"
boot2docker ip 2
>"VM的主机唯一接口IP地址是:192.168.59.103"
boot2docker ip 2>/dev/null
=>"192.168.59.103"(好吧我有点理解,但我不知道它是如何工作的,我不知道:4243
它来自哪里."
实际上这里发生了什么,为什么端口不同?
如果要为打开的每个终端自动设置DOCKER_HOST环境变量,请使用"boot2docker shellinit"命令.您可以将此行添加到.bash_profile以处理业务:
$(boot2docker shellinit)
不幸的是,如果你的boot2docker虚拟机在你打开终端时没有运行,这会给你一个恼人的错误信息("运行中的错误:VM"boot2docker-vm"没有运行.")把它放在.bash_profile而不是压制错误信息:
$(boot2docker shellinit 2>/dev/null)
Github的更多细节
注意:如果您使用Docker Machine来管理boot2docker,则等效命令为
eval "$(docker-machine env MACHINE-NAME)"
其中MACHINE-NAME是boot2docker机器的名称.