gpt4 book ai didi

windows - 如何从运行 Docker Toolbox(docker 机器)的 Windows 启用 Docker API 访问

转载 作者:IT老高 更新时间:2023-10-28 21:36:03 24 4
gpt4 key购买 nike

我正在运行最新的 Docker Toolbox,使用最新的 Oracle VirtualBox,并使用 Windows 7 作为主机操作系统。

我正在尝试启用对 Docker 远程 API 的非 TLS 访问,因此我可以使用在 Windows 上运行的 Postman REST 客户端并在 VirtualBox 的 docker-machine 上运行 docker API。我发现如果 Docker 配置包含 -H tcp://0.0.0.0:2375,那么可以在 docker 机器的端口 2375 上公开 API,但对于我来说,我可以'找不到此配置的存储位置并且可以更改。

我从 Toolbox CLI 执行了 docker-machine ssh,然后去查看 /etc/init.d/docker 文件,但没有更改文件存活 docker-machine restart.

我能够在 Ubuntu 和 OSX 上找到这个问题的答案,但在 Windows 上却找不到。

最佳答案

@CarlosRafaelRamirez 提到了正确的地方,但我将添加一些细节并提供更详细的分步说明,因为 Windows 开发人员通常不熟悉 Linux 生态系统。

免责声明:以下步骤可以从 Windows 主机访问 Docker Remote API,但请记住两点:

  1. 这不应该在生产环境中完成,因为这会使 Docker 机器非常不安全。
  2. 当前解决方案禁用了大部分 docker-machine 和所有 docker CLI 功能。 docker-machine ssh 仍然可以运行,强制一个人通过 SSH 进入 docker 机器以访问 docker 命令。

解决方案现在,这里是将 Docker API 切换到非 TLS 端口所需的步骤。 (Docker 机器名称假定为“默认”。如果您的机器名称有不同的名称,则需要在下面的命令中指定它。)

  1. 启动“Docker 快速入门终端”。它启动 Bash shell,是运行以下所有命令的地方。运行 docker-machine ip 命令并记下 docker 主机的 IP 地址。然后做
  2. docker-machine ssh
  3. cd/var/lib/boot2docker
  4. sudo vi profile 这会在提升权限模式下启动“vi”编辑器,以编辑 Docker 主机设置所在的“profile”文件。 (如果你是 Windows 用户对 vi 不熟悉,这里是关于它的 super 基础速成类(class)。在 vi 中打开文件时,vi 不处于编辑模式。按“i”进入编辑模式。现在你可以进行更改。完成所有更改后,按 Esc 然后按 ZZ 保存更改并退出 vi。如果您需要退出 vi 而不保存更改,请在 之后Esc 请输入 :q! 回车。“:”开启vi的命令模式,“q!”命令表示不保存退出。详细的vi命令信息为here。 )
  5. 使用 vi,将 DOCKER_HOST 更改为 DOCKER_HOST='-H tcp://0.0.0.0:2375',并设置 DOCKER_TLS=no。如上所述保存更改。
  6. exit 退出 SSH session 。
  7. docker-machine 重启

doocker 机器重启后,您应该能够访问 docker API URL,例如 http://dokerMachineIp:2375/containers/json?all=1,并返回有效的 JSON。

这是实现主要目标所需步骤的结束

但是,如果此时您尝试运行 docker-machine configdocker images,您将看到一条错误消息,指示 docker CLI 客户端正在尝试获取通过旧的端口/TLS 设置到 Docker,这是可以理解的。但我没想到的是,即使在我关注了所有 Getting Started 之后方向,然后运行 ​​export DOCKER_HOST=tcp://192.168.99.101:2375export DOCKER_TLS_VERIFY=0,结果

$ env | grep DOCKER
DOCKER_HOST=tcp://192.168.99.101:2375
DOCKER_MACHINE_NAME=default
DOCKER_TLS_VERIFY=0
DOCKER_TOOLBOX_INSTALL_PATH=C:\Program Files\Docker Toolbox
DOCKER_CERT_PATH=C:\Users\USERNAME\.docker\machine\machines\default

结果是一样的:

$ docker-machine env

Error checking TLS connection: Error checking and/or regenerating the certs: There was an error validating certificates for host "192.168.99.101:2376"

如果您发现我如何更改环境变量以将 Docker CLI 指向新的 Docker 主机地址有问题,请发表评论。

要解决此问题,请使用 docker-machine ssh 命令并在此之后运行 docker 命令。

关于windows - 如何从运行 Docker Toolbox(docker 机器)的 Windows 启用 Docker API 访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40294853/

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