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
    

结束。

posted @ 2020-12-15 17:40  小鸡小鸡快点跑  阅读(393)  评论(0)    收藏  举报