如何从运行Docker Toolbox(docker machine)的Windows启用Docker API访问

前端之家收集整理的这篇文章主要介绍了如何从运行Docker Toolbox(docker machine)的Windows启用Docker API访问前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

所有.

使用最新的Oracle VirtualBox运行最新的Docker ToolBox,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,但请记住两件事:

>这不应该在生产中完成,因为它使Docker机器非常不安全.
>当前解决方案禁用大多数docker-machine和所有docker CLI功能. docker-machine ssh仍然可以运行,强制SSH进入docker机器访问docker命令.


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

>启动“Docker Quickstart终端”.它启动Bash shell,并且是运行所有后续命令的地方.运行docker-machine ip命令并记下docker主机的IP地址.然后做
> docker-machine ssh
> cd / var / lib / boot2docker
> sudo vi profile这将在编辑“profile”文件所需的提升权限模式下启动“vi”编辑器,其中Docker主机设置为. (如果作为Windows用户你不熟悉vi,这里是超级基本速成课程.当文件在vi中打开时,vi不处于编辑模式.按“i”开始编辑模式.现在你可以进行所有更改后,点击Esc然后点击ZZ保存更改并退出vi.如果你需要退出vi而不保存更改,请在Esc之后输入:q!然后点击Enter.“:”打开vi的命令模式,“q!”命令表示退出而不保存.详细的vi命令信息为here.)
>使用vi,将DOCKER_HOST更改为DOCKER_HOST =’ – H tcp://0.0.0.0:2375′,并设置DOCKER_TLS = no.如上所述保存更改.
>退出退出SSH会话.
> docker-machine restart

在doocker机器重新启动后,您可以访问docker API URL,例如http:// dokerMachineIp:2375 / containers / json?all = 1,然后返回有效的JSON.

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

但是,如果此时您尝试运行docker-machine config或docker镜像,您将看到一条错误消息,指示docker CLI客户端正在尝试通过旧端口/ TLS设置访问Docker,这是可以理解的.不过我没想到的是,即使我遵循了所有Getting Started方向,然后运行导出DOCKER_HOST = tcp://192.168.99.101:2375并导出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命令.

猜你在找的Docker相关文章