Vla*_*adH 6 windows rest windows-7 docker 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,但是对于我来说,我无法找到这个配置的存储位置并且可以更改.
我docker-machine ssh从Toolbox CLI 做了,然后去了/etc/init.d/docker文件,但没有对文件的更改存活docker-machine restart.
我能够为Ubuntu和OSX找到这个问题的答案,但不能用于Windows.
@CarlosRafaelRamirez提到了正确的地方,但我会添加一些细节并提供更详细的逐步说明,因为Windows开发人员通常不熟悉Linux生态系统.
免责声明:以下步骤可以从Windows主机访问Docker Remote API,但请记住两件事:
docker-machine和所有dockerCLI功能.docker-machine ssh仍然可以运行,强制一个人通过SSH进入docker机器来访问docker命令.解决方案 现在,以下是将Docker API切换到非TLS端口所需的步骤.(Docker机器名称假定为"默认".如果您的机器名称具有不同的名称,则需要在以下命令中指定它.)
docker-machine ip命令并记下docker主机的IP地址.然后做docker-machine sshcd /var/lib/boot2dockersudo vi profile这将在编辑"配置文件"文件所需的提升权限模式下启动"vi"编辑器,其中Docker主机设置为.(如果作为Windows用户你不熟悉vi,这里是超级基本速成课程.当文件在vi中打开时,vi不处于编辑模式.按"i"开始编辑模式.现在你可以进行所有更改后,点击Esc然后ZZ保存更改并退出vi.如果您需要退出vi而不保存更改,Esc请输入:q!并按Enter键.":"打开vi的命令模式,然后"q! "命令表示退出而不保存.详细的vi命令信息在这里.)DOCKER_HOST='-H tcp://0.0.0.0:2375',然后设置DOCKER_TLS=no.如上所述保存更改.exit 离开SSH会话.docker-machine restart在doocker机器重新启动后,你可以点击docker API URL http://dokerMachineIp:2375/containers/json?all=1,并获得有效的JSON.
这是实现主要目标所需步骤的结束.
但是,如果此时您尝试运行docker-machine config或docker images,您将看到一条错误消息,指示docker CLI客户端正在尝试通过旧端口/ TLS设置访问Docker,这是可以理解的.预计不会对我虽然什么,就是即使我跟所有的入门路线,跑export DOCKER_HOST=tcp://192.168.99.101:2375和export 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
Run Code Online (Sandbox Code Playgroud)
结果是一样的:
$ docker-machine env
Run Code Online (Sandbox Code Playgroud)
检查TLS连接时出错:检查和/或重新生成证书时出错:验证主机"192.168.99.101:2376"的证书时出错
如果您看到我如何更改环境变量以将Docker CLI指向新的Docker主机地址时出现问题,请发表评论.
要解决此问题,请使用docker-machine ssh命令并在此docker之后运行命令.
| 归档时间: |
|
| 查看次数: |
6568 次 |
| 最近记录: |