springboot项目与docker集成,首先需要的是安装docker,这里介绍在windows上安装docker。
windows上安装docker,其实是借助virtualbox安装了一个boot2docker-vm的虚拟机,另外提供了一个类linux的命令行工具mingw32操作界面,可以通过docker ps,docker images,docker run ,docker start, docker stop等命令操作镜像与容器。
这里需要安装的boot2docker,在github上的地址是:https://github.com/boot2docker/windows-installer/releases,选择最新的docker-install.exe文件下载安装即可。
安装过程中,会提示安装virtualbox,gitshell,boot2docker启动工具等。安装完成,桌面会多出两个图标,virtualbox,boot2docker
start。我们点击boot2docker start,启动docker环境,这时候会启动virtualbox,并在virtualbox中启动一个虚拟机。
启动成功之后,打开virtualbox:
点击显示,我们看到虚拟机boot2docker-vm开启了docker环境:
我们回到mingw32命令行,可以运行docker images,docker ps命令。
接下来,我们拉取一个centos7镜像到本地。
docker pull centos:latest
拉取速度试网速而定,我这里拉取时输出信息将屏幕遮盖,就不截图了。可以看到拉取成功,我们的images列表会多出一个名为centos,tag为latest的镜像,后面的实验我们就通过这个基础镜像来做。
我们先利用centos:latest镜像启动一个容器:
docker run -d -t --name pythonserver -p 8000:8000 centos
如果不出意外,容器启动成功,通过docker ps可以看到启动的容器。
为了验证容器可以正常工作,我们进入容器,启动一个python http服务。
docker exec -it pythonserver bash
python2上面启动一个http服务,可以通过 python -m SimpleHTTPServer命令。
python3上面启动一个http服务,可以通过python -m http.server命令。
监听端口是8000,我们在启动容器的时候就指定了端口映射 -p 8000:8000,pythonserver容器的8000端口映射到boot2docker-vm虚拟机的8000端口,但是这并不是我们宿主机,也就是win7主机的8000端口,需要我们在virtualbox的settings中设置端口转发,如下:
这样,我们可以通过win7主机上的浏览器直接访问python http服务。
http://localhost:8000/
这里,我们的容器经过两次端口映射,最终可以通过win7主机访问,比直接在linux上搭建docker环境稍微复杂了一点。原因就是windows上的docker环境其实是运行了一个linux虚拟机。我们在gitshell上通过docker ps,docker images等命令操作容器或者镜像,其实最终通过调用了boot2docker-vm虚拟机来帮我们做了。如果我们的虚拟机有问题,可以通过boot2docker ssh进入虚拟机,如下:
至此,我们完成了windows环境上docker环境搭建,以及镜像拉取,容器启动等准备工作,接下来可以通过基础镜像制作我们的镜像。让容器可以运行java项目。