dockerfile编写

本文介绍了如何使用Dockerfile来定制镜像,包括FROM、MAINTAINER、RUN等基本指令,以及CMD和ENTRYPOINT的区别。通过一个实例展示了如何制作基于Dockerfile的JDK镜像,从下载JDK安装包到编写Dockerfile,再到打包成镜像的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

定制镜像

定制镜像的两种方法

  • 手动修改容器的内容,然后导出新的镜像
  • 基于dockerfile构建新的镜像

dockerfile

镜像是多层存储的,每一层都是在前一层的基础上进行修改的
dockerfile的主要组成部分:基础镜像、维护者的信息、镜像的操作指令、容器启动时执行的命令
DcokerFile的指令

FROM  		指定基础镜像
MAINTAIMER 	指定维护者的信息
RUN			执行命令
ADD 		复制文件到容器内(如果是压缩文件会自动解压)
COPY		复制文件到容器内,不会自动解压
WORKDIR		指定工作目录
VOLUME		设置挂载卷
EXPORT		指定对外的端口信息
ENV			设置环境变量,这个是全局的
ENTRYPOINT	容器启动后执行的命令
CMD			指定容器启动后执行的命令

cmd和entrypoint的区别是:如果有entrypoint存在的话,那么就会把cmd当作参数传递给entrypoint

实例: dockerfile制作jdk镜像
  1. 首先要下载好jdk的安装包,我这里下载的是jdk1.8版本的
  2. 编写Dockerfile
[root@docker docker]# vim Dockerfile 
FROM frolvlad/alpine-glibc:alpine-3.14_glibc-2.33
MAINTAINER dxy
ADD ./jdk-8u301-linux-x64.tar.gz /opt/
ENV PATH=/opt/jdk1.8.0_301/bin:$PATH
CMD ["/bin/sh"]
# 查看目录下有的文件
[root@docker docker]# ls
Dockerfile  jdk-8u301-linux-x64.tar.gz
  1. 打包成镜像
docker build -t java/jdk:8_301 .
# 参数
-t:指定镜像的名字和版本
-f:指定dockerfile文件
.:是使用当前目录创建dockerfile
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值