微信
支付宝
# 2.3Docker部署java工程 #### 1.导入jar包 #### 2.在Docker部署jdk(容器名为myjdk17) #### 3.修改jar包名 \`\`\`shell mv 原包名 新包名 \`\`\` !\[image-20240328090440812\](https://hgh-typora-image.oss-cn-guangzhou.aliyuncs.com/img/image-20240328090440812.png) #### 4. 配置启动脚本 Dockerfile是一个文本文件,其中包含了构建 Docker 镜像所需的一系列步骤和指令。通过编写 Dockerfile 文件,可以生成我们想要的镜像。基于JDK17镜像使用dockerfile自定义SpringBoot项目的镜像,然后使用该自定义镜像去创建并启动容器。 \*\*同目录路径下创建Dockerfile文件:\*\* \`\`\`shell vim Dockerfile \`\`\` \*\*写入如下内容:\*\* \`\`\`shel # 指定基础镜像(jdk镜像名) FROM myjdk17 # 维护者信息 MAINTAINER hgh # 定义匿名卷 VOLUME /tmp # 复制文件或修改名称(第一个jar包名为修改前的jar包名) ADD forum-service.jar forum-service.jar # 允许端口:SpringBoot项目端口 EXPOSE 8888 # 入口,此为修改后的jar包名 ENTRYPOINT \["java","-jar","/forum-service.jar"\] ENV TZ=Asia/Shanghai \`\`\` \> FROM:指定基础镜像名称和版本,将打包的项目在该基础镜像上运行 \> LABEL:为镜像添加元数据,可以用于标识镜像的作者、版本、描述等信息(可忽略) \> ENV:设置环境变量,可以在容器内部使用 \> WORKDIR:设置工作目录,用于指定容器内部的工作目录,后续的命令都将在该目录下执行 \> COPY:从本地复制文件至创建的镜像文件 \> RUN: 对创建的镜像使用的命令 \> CMD: 容器被创建启动时执行的命令 解释:VOLUME 指定了临时文件目录为/tmp。其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp。该步骤是可选的,如果涉及到文件系统的应用就很有必要了。/tmp目录用来持久化到 Docker 数据文件夹,因为 Spring Boot 使用的内嵌 Tomcat 容器默认使用/tmp作为工作目录 项目的 jar 文件作为 "forum-service.jar" 添加到容器的ENTRYPOINT 执行项目forum-service.jar。 如果是第一次打包,它会自动下载java 8的镜像作为基础镜像,以后再制作镜像的时候就不会再下载了。 \> 参考:https://blog.csdn.net/qq_37924905/article/details/113247060 #### 5. 制作镜像(在dockerFile文件目录下运行) \`\`\`shell docker build -t forum-service . \`\`\` forum-service: 镜像名称(任意) #### 6. 查看镜像是否已经生成 \`\`\`shell docker images \`\`\` #### 7. 配置springboot项目,启动容器 \`\`\`shell docker run --restart=always -d -p 8888:8888 --name forum-server forum-server \`\`\` \> -d 参数是让容器后台运行 \> -p 端口映射,此时将服务器中的8888端口映射到容器中的8888(项目中端口配置的是8888)端口 \> \> --name forum-service 容器名 \> \> forum-server 使用的images镜像 #### 8. 查看一下是否已经启动 \`\`\`shell docker ps \`\`\` #### 9.查看容器日志 \`\`\`shell docker logs forum-service \`\`\` 最后就可以去测试了,地址如:http://47.xxx.15.23:8888/login ### ==注意==:一定不要忘了去云服务器上放行相应的端口 #### 扩展 进入容器并执行命令 \`\`\`shell docker exec -it forum-service /bin/bas \`\`\` 容器重命名 \`\`\`shell docker rename \[原名\] \[改名\] \`\`\` 删除容器 \`\`\`shell docker stop \[容器名\] docker rm \[容器名\] \`\`\` 删除镜像 \`\`\`shell docker rmi \[镜像id前3位\] \`\`\` 设置容器开机自启动 \`\`\`shell docker update --restart=always 容器名称 \`\`\`
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 Veylor
最近发布
常用SQL