Docker部署SpringBoot项目
1.准备一个SpringBoot项目
2.安装Docker
Docker运行在CentOS 7上,要求操作系统为64位,内核版本为3.10及以上。
确认本机已经安装了满足要求的Linux内核。使用命令uname -r
来检查内核版本信息。
[root@localhost ~]# uname -r
3.10.0-957.el7.x86_64
安装Docker
使用命令yum install -y docker安装Docker,“-y”表示不询问,使用默认配置进行安装。
启动Docker服务,并设置为开机自启动
#启动
systemctl start docker.service
#开启自启动
systemctl enable docker.service
#查看docker版本
docker version
3.配置DockerFile文件
新建文件夹并创建对应文件
cd /home
mkdir DockerDeploy
cd DockerDeploy
touch Dockerfile #插入如下内容
FROM java:8
VOLUME /tmp
ADD my-blog-4.0.0-SNAPSHOT.jar app.jar
RUN bash -c "touch /app.jar"
EXPOSE 8080
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
Remark:
FROM指令指定一个已经存在的镜像,告诉Docker后续的指令都是在这个基础上进行的。例如:FROM java:8
表示使用 Jdk1.8 环境为基础镜像进行构建镜像。
VOLUME ,VOLUME 指向了一个/tmp的目录,由于Spring Boot使用内置的Tomcat容器,Tomcat 默认使用/tmp作为工作目录。这个命令的效果是:在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录
ADD ,拷贝文件并且重命名
ENTRYPOINT,为了缩短Tomcat 的启动时间,添加java.security.egd的系统属性指向/dev/urandom作为ENTRYPOINT
4.上传jar包(上传步骤一中准备好的jar包)
5.构建镜像(镜像名需要小写)
Remark:第一次构建会耗时比较久
# 构建镜像
docker build -t blog .
6.检查镜像
docker images
7.构建容器并运行
docker run -d --name=myblog -p 8080:8080 blog
#查看容器
docker ps
#查看日志
docker logs -f id
解释说明:
run: 容器启动命令
--name boot-docker 自定义容器命名
-d 程序后台启动
-v /opt/jar/boot-docker/logs:/log 应用日志 数据卷的方式存储
-p 8000:8000 用主机8000端口映射容器端口
boot-docker 镜像名称
8.访问检测正常
9.打tag,推送到私人仓库,下次直接拉取使用