docker系列—10.Dockerfile

本文深入解析Dockerfile的基本概念及其在开发、测试和运维中的重要作用,详细介绍了常用命令如FROM、MAINTAINER、ENV、RUN、ADD、COPY、WORKDIR等的使用方法,并通过创建Java运行环境的具体案例,演示了如何利用Dockerfile构建定制化的镜像。

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

1.什么是Dockerfile

Dockerfile是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个
新的镜像。
1)、对于开发人员:可以为开发团队提供一个完全一致的开发环境;
2)、对于测试人员:可以直接拿开发时所构建的镜像或者通过Dockerfile文件构建一个新
的镜像开始工作了;
3)、对于运维人员:在部署时,可以实现应用的无缝移植.

2.常用命令

命令作用
FROM image_name:tag定义了使用哪个基础镜像启动构建流程
MAINTAINER user_name声明镜像的创建者
ENV key value设置环境变量 (可以写多条)
RUN command是Dockerfile的核心部分(可以写多条)
ADD source_dir/file dest_dir/file将宿主机的文件复制到容器内,如果是一个压缩文件,将会在复制后自动解压
COPY source_dir/file dest_dir/file和ADD相似,但是如果有压缩文件并不能解压
WORKDIR path_dir设置工作目录

3.使用脚本创建镜像

步骤:

1)创建目录

mkdir –p /usr/local/dockerjdk8

2)下载jdk-8u171-linux-x64.tar.gz并上传到服务器(虚拟机)中的/usr/local/dockerjdk8目录

3)创建文件Dockerfile

vi Dockerfile
#依赖镜像名称和ID
FROM centos:7
#指定镜像创建者信息
MAINTAINER ITCAST
#切换工作目录
WORKDIR /usr
RUN mkdir /usr/local/java
#ADD 是相对路径jar,把java添加到容器中
ADD jdk‐8u171‐linux‐x64.tar.gz /usr/local/java/
#配置java环境变量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
# 注意:上面ENV 应该是一行,粘贴过去应该进行修改,是key value的形式,否则会出错
ENV PATH $JAVA_HOME/bin:$PATH

实际使用时请用下面这些,上面添加的注释执行时是有问题的

FROM centos:7
MAINTAINER ITCAST
WORKDIR /usr
RUN mkdir /usr/local/java
ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/
ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH

4)执行命令构建镜像

docker build ‐t='jdk1.8' .

注意后边的空格和点,不要省略

5)查看镜像是否建立完成

docker images

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值