docker 部署springboot jar包
docker 部署springboot jar包
踩坑:部署上去后无法访问MySQL,这是因为当时写的ip地址是localhost,而每个容器都有自己的ip地址,所以再用localhost就会使用容器的IP地址。后将ip改为服务器公网ip修复。
-
由于远程docker存在安全问题,所以采用Dockerfile的方式进行部署
-
Dockerfile具体内容如下
# 基础镜像 若不存在会从仓库中下载
FROM java:8
#维护者信息
MAINTAINER LC
# 复制打包完成后的jar文件到/home目录下
ADD flower-0.0.1-SNAPSHOT.jar /home/flower-0.0.1-SNAPSHOT.jar
# 挂载/home/file目录到主机
#VOLUME 指向了一个/tmp的目录,由于 Spring Boot 使用内置的Tomcat容器,Tomcat 默认使用/tmp作为工作目录。
#这个命令的效果是:在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录
VOLUME /home/file
# 设置时区
RUN echo "Asia/Shanghai" > /etc/timezone
#暴漏8888端口
EXPOSE 8888
#bash方式执行,使flower-0.0.1-SNAPSHOT.jar可访问
# RUN新建立一层,在其基础上执行这些命令,执行结束后,commit这一层的修改,构成新的镜像
RUN bash -c 'touch /home/flower-0.0.1-SNAPSHOT.jar'
# 启动容器时执行
#为了缩短 Tomcat 的启动时间,添加java.security.egd的系统属性指向/dev/urandom作为 ENTRYPOINT
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/home/flower-0.0.1-SNAPSHOT.jar"]
-
编写完成后使用xftp将打包好的jar包与Dockefile上传到了腾讯云服务器中,jar包要与Dockerfile存在同一文件夹下,这是因为在制作镜像时会从当前文件夹中读取jar包
-
使用
docker build -t 镜像名 .
构建镜像
-
使用
docker run -di --name 容器名 -p容器端口:宿主机端口 镜像名运行镜像
-
若是需要删除镜像,则需要将该镜像下的容器停止再删除,最后删除镜像,具体指令如下
docker stop 容器名 docker rm 容器名 docker rmi 镜像名或者镜像id
结束。
本文来自博客园,作者:小鸡小鸡快点跑,转载请注明原文链接:https://www.cnblogs.com/clion/p/14140012.html

浙公网安备 33010602011771号