Docker自定义镜像的实现步骤(SpringBoot程序为例)
一. 说明
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也可以正常的访问!
最后
到此这篇关于Docker自定义镜像的实现步骤(SpringBoot程序为例)的文章就介绍到这了,更多相关Docker自定义镜像内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
docker部署Prometheus+Cadvisor+Grafana实现服务器监控
这篇文章主要为大家介绍了docker部署Prometheus+Cadvisor+Grafana实现服务器监控,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-11-11
Docker 部署HAProxy v2.2.29 并暴露指标接口的问题解决
haproxy提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案,这篇文章主要介绍了Docker 部署HAProxy v2.2.29 并暴露指标接口,需要的朋友可以参考下2023-04-04
将spring boot应用打入docker中运行的实现方法
这篇文章主要介绍了将spring boot应用打入docker中运行的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-07-07
CentOS 7下设置Docker代理(Linux下Systemd服务的环境变量配置)
本文给大家分享Linux下Systemd服务的环境变量配置方法,此示例将覆盖默认docker.service文件,对CentOS 7下设置Docker代理的相关知识感兴趣的朋友跟随小编一起看看吧2021-05-05


最新评论