Docker基础实战教程三:Dockerfile

初识Dockerfile
#创建一个空文件夹,并进入其中

mkdir newdir1

cd newdir1

#创建一个Dockerfile文件

touch Dockerfile

#假设我的Dockerfile文件为

#FROM ubuntu

#RUN mkdir dir1

#可以这么写:

# echo 'FROM ubuntu' > Dockerfile

# echo 'RUN mkdir dir1'>> Dockerfile

#输入Dockerfile文件内容

#********** Begin *********#

#以busybox为基础镜像

echo 'FROM busybox' > Dockerfile

#在基础镜像的基础上,创建一个hello.txt文件

echo 'RUN touch /hello.txt' >> Dockerfile

#********** End **********#

#使用Dockerfile创建一个新镜像,镜像名为busybox:v1

docker build -t busybox:v1 .

docker build、COPY和ADD
#创建一个空文件夹,并进入其中

mkdir newdir2

cd newdir2

#创建一个文件夹dir1,将其压缩,然后删除dir1

mkdir dir1 && tar -cvf dir1.tar dir1 && rmdir dir1

#创建一个Dockerfile文件

touch Dockerfile

#假设我的Dockerfile文件为

#FROM ubuntu

#RUN mkdir dir1

#可以这么写:

# echo 'FROM ubuntu' > Dockerfile

# echo 'RUN mkdir dir1'>> Dockerfile

#输入Dockerfile文件内容

#********** Begin *********#

#以busybox为基础镜像

echo 'FROM busybox' > Dockerfile

#并将上下文目录下的dir1.tar“解压提取后”,拷贝到busybox:v3的/

echo 'ADD dir1.tar /' >> Dockerfile

#********** End **********#

#文件内容完毕,在当前文件夹中执行

#********** Begin *********#

#以该Dockerfile构建一个名为busybox:v3的镜像

docker build -t busybox:v3 .

#********** End **********#

CMD和ENTRYPOINT指令
#创建一个空文件夹,并进入其中

mkdir newdir3

cd newdir3

#创建一个Dockerfile文件

touch Dockerfile

#假设我的Dockerfile文件为

#FROM ubuntu

#RUN mkdir dir1

#可以这么写:

# echo 'FROM ubuntu' > Dockerfile

# echo 'RUN mkdir dir1'>> Dockerfile

#输入Dockerfile文件内容

#********** Begin *********#

#以busybox为基础镜像

echo 'FROM busybox' > Dockerfile

#默认情况下,将启动命令设置为df -Th。要求df命令不能被覆盖,但-Th能够被覆盖。

echo 'ENTRYPOINT ["df"]'>> Dockerfile

echo 'CMD ["-Th"]'>> Dockerfile

#********** End **********#

#文件内容完毕,在当前文件夹中执行

#********** Begin *********#

#以该Dockerfile构建一个名为mydisk:latest的镜像

docker build -t mydisk:latest .

#********** End **********#

ENV、EXPOSE、WORKDIR、ARG指令
#创建一个空文件夹,并进入其中

mkdir newdir4

cd newdir4

#创建一个Dockerfile文件

touch Dockerfile

#假设我的Dockerfile文件为

#FROM ubuntu

#RUN mkdir dir1

#可以这么写:

# echo 'FROM ubuntu' > Dockerfile

# echo 'RUN mkdir dir1'>> Dockerfile

#输入Dockerfile文件内容

#********** Begin *********#

#以busybox为基础镜像

echo 'FROM busybox' > Dockerfile

#声明暴露3000端口

echo 'EXPOSE 3000' >>Dockerfile

#将变量var1=test设置为环境变量

echo 'ENV var1=test '>>Dockerfile

#设置工作目录为/tmp

echo 'WORKDIR /tmp'>>Dockerfile

#在工作目录下创建一个1.txt文件

echo "RUN touch 1.txt" >> Dockerfile

#********** End **********#

#文件内容完毕,在当前文件夹中执行

#********** Begin *********#

#以该Dockerfile构建一个名为testimage:v1的镜像

docker build -t testimage:v1 .

#********** End **********#


 

#无论任何输入都会认为正确,本关的目的是学习ONBUILD和VOLUME指令 

#无论任何输入都会认为正确,本关的目的是学习缓存 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

M_inherit

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值