Building postgres -6ren">
gpt4 book ai didi

bash - 评估 "$(docker-machine env default)"

转载 作者:IT老高 更新时间:2023-10-28 12:45:35 24 4
gpt4 key购买 nike

我在使用 docker-compose 启动 docker 时遇到问题。

当我运行 docker-compose -f dev.yml build 时我跟随错误>

Building postgres
ERROR: Couldn't connect to Docker daemon - you might need to run `docker-machine start default`.

但是,如果我运行 docker-machine ls机器显然已经启动>

NAME      ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER    ERRORS
default - virtualbox Running tcp://192.168.99.100:2376 v1.12.1

我通过运行 eval "$(docker-machine env default)" 修复了错误之后docker-compose -f dev.yml build成功完成。

我的问题是为什么会这样,实际发生了什么以及如何撤消它?

这也是解决此问题的安全方法吗?现在这只是我的笔记本电脑,但这些容器应该会在不久的将来到达公司服务器。

我对 bash 不是很流利,但我总是被告知不要运行 eval尤其是不要使用 "

运行 eval

最佳答案

当您运行 docker 命令时,CLI 会连接到 Docker 守护程序的 API,而真正完成工作的是 API。您可以通过更改 API 连接详细信息从本地 CLI 管理远程 Docker 主机,这些详细信息 Docker 存储在运行 CLI 的客户端的环境变量中。

使用 Docker Machine,您的 Docker 引擎在虚拟机中运行,这实际上是一台远程机器,因此需要配置您的本地 CLI 以连接到它。 Docker Machine 知道它管理的引擎的连接详细信息,因此运行 docker-machine env default 会打印出 default 机器的详细信息。输出是这样的:

 $ docker-machine env default
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://172.16.62.130:2376"
export DOCKER_CERT_PATH="/Users/elton/.docker/machine/machines/default"
export DOCKER_MACHINE_NAME="default"

使用 eval 执行每个 export 命令,而不是仅仅将它们写入控制台,因此这是设置环境变量的快速方法。

您可以撤消它并使用 docker-machine env --unset 重置本地环境,这将为您提供取消设置环境的输出(因此 CLI 将尝试连接到本地 Docker 引擎)。

关于bash - 评估 "$(docker-machine env default)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40038572/

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