springboot项目集成docker部署服务器

1.先搭建docker环境:

安装docker
yum -y install docker

启动docker 后台服务
service docker start 

查看docker启动状态
systemctl status docker 

重启docker(略过这步,只是告诉你命令)
systemctl restart docker

测试运行hello-world
docker run hello-world

2.修改docker下载镜像路径,因为默认国外的会很慢,替换为国内的镜像源

vim /etc/docker/daemon.json
加入以下的代码
{
    "registry-mirrors":[""]
}

3.打包自己的springboot项目

mvn package

将jar包上传到服务器上

4.创建dockerfile

注意事项:dockerfile要和jar包在同一个路径下才可以,不然会访问不到
#创建Dockerfile文件
touch Dockerfile 

#编辑Dockerfile文件
vim Dockerfile

#输入以下内容,注意看有些包名你要改成自己jar包文件
FROM java:8
EXPOSE 81
ADD boot-docker-0.0.1-SNAPSHOT.jar boot-docker.jar
RUN sh -c 'touch /boot-docker.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /boot-docker.jar" ]

#参数说明推荐博客:
https://www.cnblogs.com/ling-yu-amen/p/10955361.html



5.开始构建dockerfile

#最后的.不要落了 -t后面代表你要构建的名字
docker build -t boot-docker .

#控制台会输出:
Sending build context to Docker daemon  16.81MB
Step 1/7 : FROM java:8
 ---> 2x5w7e2z3w9e
Step 2/7 : EXPOSE 81
 ---> Using cache
 ---> 2we5x8e62da8
Step 3/7 : VOLUME /slm
 ---> Using cache
 ---> e21x47w2b868
Step 4/7 : ADD boot-docker-0.0.1-SNAPSHOT.jar boot-docker.jar
 ---> Using cache
 ---> 2479weaafca9
Step 5/7 : RUN sh -c 'touch /boot-docker.jar'
 ---> Using cache
 ---> 81w2q36x8waf
Step 6/7 : ENV JAVA_OPTS=""
 ---> Using cache
 ---> 78424q8w2e46
Step 7/7 : ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /boot-docker.jar" ]
 ---> Using cache
 ---> 97458asde771
Successfully built 97458asde771
Successfully tagged bootdocker:latest

6.构建成功后,映射端口启动run

#后面的ID,就是刚刚构成镜像的ID,Successfully后面的那串ID
docker run -d -p 81:81 97458asde771

#查看所有容器 -a代表没有启动的也显示
docker ps -a

#进入容器
docker exec -it 容器id bash

#进入容器后,可以访问一下方法
curl localhost:81/index

#执行无误后代表没有问题,当然有自信,可以省略进入容器那一步,不过至少可以排除点问题

7.控制台输出信息后,代表成功,然后直接windows浏览器访问就可以了;
springboot项目集成docker部署服务器_第1张图片

8.博主踩过的坑:

①编写dockerfile的时候add一直是查找不到文件,最后发现两个原因,第一个是因为jar包和dockerfile没在同一个文件,第二个是因为add 不需要写jar包的绝对路径或者完整路径,只需要写文件名称就可以了,因为他在同一个目录下。
springboot项目集成docker部署服务器_第2张图片

②因为博主反复折腾了很多遍,然后docker居然崩掉了,报了一个too often,访问太频繁的错误给我,然后重启也不行,关掉也不行,最后上网查,将daemon.json改成daemon.conf,修改了个后缀就可以了,现在我也不清楚原因。
springboot项目集成docker部署服务器_第3张图片

mv /etc/docker/daemon.json /etc/docker/daemon.conf

③dockerfile也运行成功了,但是浏览器还是访问不了,这个搞了好久好久。最后发现是个大乌龙。因为博主是用宝塔的,我以为宝塔的端口放行了就可以了,没想到原来还要放行阿里云服务器的安全组,最后放行之后就解决了。

你可能感兴趣的:(工具)