Docker基础实战教程三:Dockerfile

第1关:初识Dockerfile

任务描述
前面我们学习过使用commit构建一个镜像,由于commit在构建镜像时,很容易将无关内容添加到镜像且维护起来十分困难。所以我们不推荐使用commit来构建一个镜像。官方推荐使用Dockerfile来构建一个镜像,这个教程将详细地来讲述Dockerfile。

本关任务是初识Dockerfile,要求学习者参照示例完成使用Dockerfile构建一个名为busybox:v1的镜像,Dockerfile的内容为:以busybox为基础镜像,在基础镜像上,创建一个hello.txt文件。

mkdir newdir1
cd newdir1
touch Dockerfile
echo 'FROM ubuntu' > Dockerfile
echo 'RUN touch hello.txt'>> Dockerfile
docker build -t busybox:v1 .

第2关:docker build、COPY和ADD

任务描述
本关的任务是深入认识docker build命令,以及学习COPY和ADD指令,要求学习这参照实例,使用Dockerfile构建一个名为busybox:v3的镜像,Dockerfile的内容为:以busybox为基础镜像,并将上下文目录下的dir1.tar“解压提取后”,拷贝到busybox:v3的/中。

mkdir newdir2
cd newdir2
mkdir dir1 && tar -cvf dir1.tar dir1 && rmdir dir1
touch Dockerfile
echo 'FROM busybox' > Dockerfile
echo 'ADD dir1.tar /' >> Dockerfile
docker build -t busybox:v3 .

第3关:CMD和ENTRYPOINT指令

任务描述
本关的任务是学习CMD指令和ENTRYPOINT指令,要求学习者参照示例, 使用Dockerfile构建一个名为mydisk:latest的镜像,Dockerfile的内容为:以busybox:latest为基础镜像,在默认情况下,将启动命令设置为df -Th。 其中df命令用来查看磁盘的信息。要求df命令不能被覆盖,但-Th能够被覆盖。

mkdir newdir3
cd newdir3
touch Dockerfile

echo 'FROM busybox' > Dockerfile
echo 'ENTRYPOINT ["df"]'>> Dockerfile
echo 'CMD ["-Th"]' >> Dockerfile

docker build -t mydisk:latest .

第4关:ENV、EXPOSE、WORKDIR、ARG指令

任务描述
本关的任务是学习ENV、EXPOSE、WORKDIR、ARG四个指令,要求学习者参照示例,使用Dockerfile构建一个名为testimage:v1的镜像,Dockerfile的内容为:以busybox:latest作为基础镜像,声明暴露3000端口。将变量var1="test"设置为环境变量,同时设置工作目录为/tmp,在工作目录下创建一个1.txt文件。

mkdir newdir4
cd newdir4

touch Dockerfile

echo 'FROM busybox' > Dockerfile
echo 'EXPOSE 3000' >> Dockerfile
echo 'ENV var1=test ' >> Dockerfile
echo 'WORKDIR /tmp'>>Dockerfile
echo "RUN touch 1.txt" >>Dockerfile

docker build -t testimage:v1 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值