本文使用Docker部署Spring Boot项目。部署之前需要环境中已经安装Docker和Maven(用于打包),所以本文先进行安装Docker和Maven;接着搭建一个Spring Boot项目,使其支持Docker部署;最后进行部署和测试。
Docker运行在CentOS 7上,要求操作系统为64位,内核版本为3.10及以上。
确认本机已经安装了满足要求的Linux内核。使用命令<code>uname -r</code>来检查内核版本信息。
使用命令<code>yum install -y docker</code>安装Docker,“-y”表示不询问,使用默认配置进行安装。
备注:Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE。社区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外的收费服务,比如经过官方测试认证过的基础设施、容器、插件等。所以,需要将安装命令修改为<code>yum install -y docker-ce</code>。(20201129修改)
使用下列命令:
输入<code>docker version</code>,返回版本信息表明Docker安装成功。
<code>wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz</code>
打开环境变量<code>vim /etc/profile</code>,添加如下内容:
保存并退出:<code>:wq</code>
刷新环境变量的配置使其生效:<code>source /etc/profile</code>
使用命令<code>mvn -v</code>进行查看
使用<code>mvn package</code>命令进行打包,却报错,提示连接被拒绝。

解决办法:给Maven配置阿里云镜像
切换到maven安装目录下面,打开settings.xml文件,在<code><mirrors></code>标签里面添加:
新建一个Spring Boot项目,添加一个简单的DockerController,方便进行测试。
在 pom.xml中添加Docker镜像名称
添加 Docker插件:
在目录src/main/docker下创建Dockerfile 文件,Dockerfile 文件用来说明如何来构建镜像。
FROM指令指定一个已经存在的镜像,告诉Docker后续的指令都是在这个基础上进行的。例如:<code>FROM java:8</code>表示使用 Jdk1.8 环境为基础镜像进行构建镜像。
VOLUME ,VOLUME 指向了一个/tmp的目录,由于Spring Boot使用内置的Tomcat容器,Tomcat 默认使用/tmp作为工作目录。这个命令的效果是:在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录
ADD ,拷贝文件并且重命名
ENTRYPOINT,为了缩短Tomcat 的启动时间,添加java.security.egd的系统属性指向/dev/urandom作为ENTRYPOINT。
将工程代码 docker 拷贝服务器中,进入项目路径下进行打包测试。
打包:<code>mvn package</code>
运行:<code>java -jar target/spring-boot-docker-1.0.jar</code>
项目启动成功,说明环境配置没有问题,接下来可以使用Dockerfile构建镜像。
构建Docker镜像<code>mvn package docker:build</code>。可以看到docker镜像构建成功,仔细看日志,会发现四个步骤和Dockerfile中的指令是一一对应的。
使用<code>docker images</code>命令查看构建好的镜像:
运行docker镜像:<code>docker run -p 8080:8080 -t springboot/docker</code>
在本机浏览器进行访问,可以看到返回结果,说明部署成功。
完整代码:GitHub地址
参考:Spring Boot 2.0(四):使用 Docker 部署 Spring Boot
由于博主也是在攀登的路上,文中可能存在不当之处,欢迎各位多指教! 如果文章对您有用,那么请点个”推荐“,以资鼓励!