✅作者简介:大家好,我是 Meteors., 向往着更加简洁高效的代码写法与编程方式,持续分享Java技术内容。
🍎个人主页:Meteors.的博客
💞当前专栏:知识备份
✨特色专栏:知识分享
🥭本文内容:Docker自定义镜像实现(SpringBoot程序为例)
📚 ** ps ** :阅读文章如果有问题或者疑惑,欢迎在评论区提问或指出。
目录
一. 说明
二. 实现步骤
附加
一. 说明
Docker自定义镜像指的是用户根据自己的需求和规范,使用Dockerfile或其他方式创建的一个Docker镜像。
Dockerfile说明:
DockerFile是一个文本文件,其中包含一个个的指令(Instruction),用指令来说明要执行什么操作来构建镜像。将来Docker可以根据Dockerfile帮我们构建镜像。常见指令如下:
指令 说明 示例 FROM 指定基础镜像 FROM centos: 6
ENV 设置环境变量,可在后面指令使用 ENV key value COPY 拷贝本地文件到镜像的指定目录 COPY ./jre11.tar.gz /tmp RUN 执行Linux的shell命令,一般是安装过程的命令 RUN tar -zxvf /tmp/jre11.tar.gz && EXPORT path=/tmp/jre11:$path
EXPOSE 指定容器运行时的监听的端口,给镜像使用者看 EXPOSE 8080 ENTRYPOINT 镜像中应用的启动命令,容器运行时调用 ENTRYPOINT java -jar xx.jar ps:官网文档
这个镜像需要包含特定的操作系统、软件、配置文件和其他必要的组件,以满足用户特定的应用或开发环境需求(镜像就是包含了应用程序、程序运行的系统函数库、运行配置等文件的文件包。构建镜像的过程其实就是把上述文件打包的过程。)
自定义Docker镜像的好处:用户可以根据自己的需要定制镜像内容,从而实现快速部署、可扩展性和可移植性。
二. 实现步骤
以运行一个SpringBoot程序为例,部署步骤如下:
- 将Java项目进行打包
- 编写Dockerfile文档
# 配置jdk环境 FROM openjdk:11.0-jre-buster # 设定时区 ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone # 拷贝jar包到镜像内,并改名为app.jar COPY mp-demo-0.0.1-SNAPSHOT.jar /app.jar # 入口 ENTRYPOINT ["java", "-jar", "/app.jar"]
- 构建镜像
docker build -t mp-demo .
-
下载jdk环境(文末附下载链接)
- 运行镜像
docker run -d --name mp-demo -p 8080:8080 mp-demo
最后,通过
docker logs -f mp-demo
我们可以看到镜像已经运行成功了,并且swagger也可以正常的访问!
附加
1. DokcerJDK11镜像tar包:
链接: https://pan.baidu.com/s/1tXEmrhSG3bY0Xm4sT5iwhQ?pwd=8700 提取码: 8700
2. 使用:
docker load -i jdk.tar
最后,
希望文章对你有所帮助!