一、需求
往Docker中复制文件
二、复制指令-COPYCOPY
指令将从构建上下文目录中 的文件或目录复制到新的一层的镜像内的 位置。
COPY ;
- 所指定的源必须在上下文中,即必须是上下文根目录的相对路径!
- 可以是容器内的绝对路径,也可以是相对于工作目录的相对路径(工作目录可以用
WORKDIR
指令来指定,后面介绍)。 - 目标路径不需要事先创建,如果目录不存在会在复制文件前先行创建目录。
三、复制指令-ADD
ADD
与COPY
指令在功能上十分相似。
ADD ;
- 源路径可以是一个指向一个网络文件的
URL
,这种情况下,Docker
引擎会试图下载这个URL
指向的文件到去。 - 当为一个
tar
压缩文件时,该压缩文件在被复制到容器中时会被解压提取。但是使用COPY
指令只会将tar
压缩文件拷贝到中
四、实例
#创建一个空文件夹,并进入其中
mkdir newdir2
cd newdir2
#创建一个文件夹dir1,将其压缩得到dir1.tar,然后删除文件夹dir1
mkdir dir1 && tar -cvf dir1.tar dir1 && rmdir dir1
#创建一个Dockerfile文件
touch Dockerfile
#输入Dockerfile文件内容
#********** Begin *********#
#以busybox为基础镜像
echo 'FROM busybox' > Dockerfile
echo 'RUN mkdir dir1'>> Dockerfile
#并将上下文目录下的dir1.tar“解压提取后”,拷贝到busybox:v3的/
echo 'ADD ./dir1.tar /'>> Dockerfile
#********** End **********#
#文件内容完毕,在当前文件夹中执行
#********** Begin *********#
#以该Dockerfile构建一个名为busybox:v3的镜像
docker build -t busybox:v3 .
#********** End **********#
docker run busybox:v3 ls /
参考:https://www.educoder.net/shixuns/zawfjtnm/challenges