Dockerfile小记之操作文件的命令ADD&COPY

Docker/容器
404
0
0
2022-07-29
标签   Docker

Dockfile中操作文件的命令ADD&COPY

COPYADD命令,在复制普通文件的时候,并没有什么太大的不同,两个命令都可以把本地文件,复制到镜像里。(如果复制的路径不存在,则会自动创建)

准备:

目录文件

image-20211127234143824

FROM node:15.10.0-slim

COPY . ./app # ADD ./app

WORKDIR /app 

RUN npm install --registry=https://registry.npm.taobao.org # 安装node依赖的命令

CMD node app.js 

构建景象完成之后我们使用 docker exec -it <Container> /bin/bash进入容器的shell

image-20211127234321370

可以看到文件通过COPY命令把宿主机器的项目文件成功放入了镜像中!

ADDCOPY命令的区别

ADD 构建镜像和COPY最直观的一点不同,是ADD命令可以直接解压gzip压缩文件,这当我们有很多文件要上传操作的时候,就会变的简单很多。

image-20211128002743616

这里我们把项目文件都打包到一个app.tar包中,然后构建镜像的时候通过ADD命令帮我们解压,我们试一试吧!

FROM node:15.10.0-slim

ADD ./app.tar.gz  /app

WORKDIR /app

RUN npm install --registry=https://registry.npm.taobao.org # 安装node依赖的命令

CMD node app.js 
注意这个包必须是通过tar的相关压缩命令去压缩,不要通过其他压缩方式去压缩然后改名字(别问我怎么知道的~)

image-20211128002851759

通过查看容器内的目录结构可以看出,ADD命令帮我们把tar包给解压了!

4.WORKDIR

在写Dockerfile文件时,默认的操作目录,是镜像的根目录。但有时候需要拷贝很多内容到镜像里是二级目录,就可以使用WORKDIR命令。把工作目录切换到二级,WORKDIR命令像我们操作linux下的cd命令。