服务器装好Docker环境,并且开放docker端口且加密给外部访问
参考:https://www.cnblogs.com/haoxianrui/p/15322508.html#1-docker-开启远程访问springboot 中进行配置
多模块项目,在最外层的pom文件中进行 build 配置
${project.artifactId} org.apache.maven.plugins maven-compiler-plugin 3.1 1.8 1.8 org.apache.maven.plugins maven-surefire-plugin 2.19.1 true
- 编写 Dockerfile 配置文件
# 基础镜像FROM openjdk:8-jre# 维护者信息MAINTAINER pzi# 设置容器时区为当前时区RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \&& echo 'Asia/Shanghai' >/etc/timezone# /tmp 目录作为容器数据卷目录,SpringBoot内嵌Tomcat容器默认使用/tmp作为工作目录,任何向 /tmp 中写入的信息不会记录进容器存储层# 在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录VOLUME /tmp# 复制主机文件至镜像内,复制的目录需放置在 Dockerfile 文件同级目录下ADD msgdemoimpl/target/msgdemoimpl.jar app.jar# 容器启动执行命令ENTRYPOINT ["java", "-Xmx128m", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar"]# 声明容器提供服务端口EXPOSE 8800
4. idea 中配置 docker
● 配置端口以及容器名字
这样的话,就会按照命令 docker -p -d 8800:8800 msgdemo:1.0 的方式启动镜像。
- 最后,直接运行即可将 jar 包成功部署到服务器
√ TODO 使用dockerfile部署一个jar包 并且测试能否跑通
踩坑:暴露端口后,还需要指定主机端口和容器端口的映射关系,这样才能正确访问接口
tips:
删除 docker images 中REPOSITORY 和 TAG 都为 none 的镜像
docker rmi $(docker images -f “dangling=true” -q)