本节书摘来自异步社区《第一本Docker书(修订版)》一书中的第2章,第2.6节,作者:【澳】James Turnbull(詹姆斯•特恩布尔)著,更多章节内容可以访问云栖社区“异步社区”公众号查看
2.6 使用本书的Docker Toolbox示例
本书中的一些示例可能会要求通过网络接口或网络端口连接到某个容器,通常这个地址是Docker服务器的localhost或IP地址。因为Docker Toolbox创建了一个本地虚拟机,它拥有自己的网络接口和IP地址,所以我们需要连接的是Docker Toolbox的地址,而不是你的localhost或你的宿主机的IP地址。
要想得到Docker Toolbox的IP地址,可以查看DOCKER_HOST环境变量的值。当在OS X或者Windows上运行Docker CLI命令时,Docker Toolbox会设置这个变量的值。
此外,也可以运行docker-machine ip命令来查看Docker Toolbox的IP地址,如代码清单2-38所示。
代码清单2-38 获取Docker Toolbox的虚拟机的IP地址
$ docker-machine ip
The VM's Host only interface IP address is: 192.168.59.103
那么,来看一个要求连接localhost上容器的示例,比如使用curl命令,只需将localhost替换成相应的IP地址即可。
因此,代码清单2-39所示的curl命令就变成了代码清单2-40所示的形式。
代码清单2-39 初始curl命令
$ curl localhost:49155
代码清单2-40 更新后的curl命令
$ curl 192.168.59.103:49155
另外,很重要的一点是,任何使用卷或带有-v选项的docker run命令挂载到Docker容器的示例都不能在Windows上工作。用户无法将宿主机上的本地目录挂接到运行在Docker Toolbox虚拟机内的Docker宿主机上,因为它们无法共享文件系统。如果要使用任何带有卷的示例,如本书第5章和第6章中的示例,建议用户在基于Linux的宿主机上运行Docker。