Docker ToolBox设置及内外网访问

环境版本


Docker-toolbox:v19.03.1

Boot2docker:v19.03.5

OS: Win 8.1

前情提要


在windows系列中如果想要运行docker,除了win10之后,所有的系统都需要下载docker-toolbox来实现docker的正确安装与运行。docker-toolbox的安装暂且不提,比较简单。

有一点要注意,安装完成之后,点击Docker Quickstart Terminal来实现docker的启动,这时他会检查本地是否有正确的boot2docker.iso文件,这个文件在安装位置的DockerToolbox文件夹下是有一个默认的(但版本不是最新的),你也可以自己去这里下载最新的版本,随后将下载好的iso文件丢到C:\Users\yourusername\.docker\machine\cache下,切记位置要正确,因为.docker\machine\cache这个路径在电脑上不止有一个,还有一个是在C:\Users\yourusername\AppData下,不要放错了位置。成功放好之后,检查成功,docker就可以正确启动了。

大鲸鱼

镜像修改问题


安装之后,需要修改docker镜像源以解决pull的速度太慢的问题,以阿里云镜像加速服务为例

image-20200521163507216

按照上图就可以解决源的问题,但一般在docker第一次启动时,default就已经被创建好了,所以你需要先↓

1
2
$ docker-machine stop default
$ docker-machine rm default

把原先的机器删除之后,再按照阿里云的教程来做,不然会失败,提示default机器已存在。(当然你也可以不删除default,而是新建一个其他名字的机器也行)

内外网访问问题


docker-toolbox的原理是先生成一个由virtualbox模拟出的linux环境。在电脑中搜索点击virtualbox,打开之后就可以看到由toolbox生产的那个default机器

image-20200521164050280

如果以上都没问题,那么你离访问你想要的容器只差最后几步。

首先你需要现在命令行里pull你想要的容器,这个过程应该很快,只要你正确配置了源

image-20200521164306797

这里我以pull prometheus(开源时序数据库,端口为9090)为例,即以下面的命令运行prometheus

1
$ docker run --name prometheus -d -p 127.0.0.1:9090:9090 prom/prometheus

这个时候你在自己的电脑上(宿主机)输入localhost:9090是访问不到容器的,这是因为目前docker容器所运行的环境不过是virtualbox的linux虚拟环境,此时就有两种方法可以让你成功访问到你想要的容器。

方法一

先选中default机器(目标机器,这里我演示的时候用的是default),点击左上角设置,找到网络部分的端口转发规则,按照如下图方式填写,(192.168.99.100是默认的IP地址,如果你不确定你的IP地址是不是这个,你可以从Docker Quickstart Terminal启动后出现的大鲸鱼下面内找到你的默认IP地址)。按照如下规则填写之后,就可以直接在宿主机输入localhost:9090访问到想要的容器。

image-20200521164717285

方法二

方法二过程没有那么麻烦,你不需要去配置网络,但是最后的访问可能比方法一要麻烦点。我们只需要将docker容器的启动命令修改为如下,(仍以prometheus启动为例)

1
2
### old : $ docker run --name prometheus -d -p 127.0.0.1:9090:9090 prom/prometheus
$ docker run --name prometheus -d -p 9090:9090 prom/prometheus

这个时候你就可以直接在宿主机的浏览器输入192.168.99.100:9090访问到你想要的容器内容。

⬆︎UP