gpt4 book ai didi

docker - 在 .bashrc 中导出 DOCKER_HOST 对终端中的相同命令产生不同的结果

转载 作者:行者123 更新时间:2023-11-29 09:34:44 24 4
gpt4 key购买 nike

在我可以使用我的 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 的 Host only 接口(interface) IP 地址是:192.168.59.103"
  • boot2docker ip 2 => "VM 的 Host only 接口(interface) 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 没有运行,这会给您一个烦人的错误消息(“运行错误:VM“boot2docker-vm”没有运行。”)将它放在您的 .bash_profile 中抑制错误信息:

$(boot2docker shellinit 2>/dev/null)

更多详情 at Github

注意:如果您使用 Docker Machine 来管理 boot2docker,则等效命令为

eval "$(docker-machine env MACHINE-NAME)"

其中 MACHINE-NAME 是您的 boot2docker 机器的名称。

关于docker - 在 .bashrc 中导出 DOCKER_HOST 对终端中的相同命令产生不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25225206/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com