当使用Dockerfile Build镜像时,有时会发现发送到Daemon的内容过大

Sending build context to Docker daemon 4.358 GB
Step 0 : FROM xxx.xxx.com/centos:7
 ---> 218081f3bcdc
Step 1 : RUN mkdir -p /data/mysql/base
 ---> Using cache
 ---> ac4aa04a93a1
Step 2 : RUN adduser mysql
 ---> Using cache
 ---> f30c90e0e589
Step 3 : ADD base /data/mysql/base
 ---> 3666ada5715c
Removing intermediate container d65c5abdfe5c
Step 4 : ENTRYPOINT /data/mysql/base/entrypoint.sh
 ---> Running in 3be4e22baff7
 ---> a73907b2fbd5
Removing intermediate container 3be4e22baff7
Successfully built a73907b2fbd5
REPOSITORY    TAG   IMAGE ID            CREATED         VIRTUAL SIZE
marriadb     latest  a73907b2fbd5        25 seconds ago      530.9 MB



但是我们的Dokerfile 非常简单,那么这些多出来的内容是从哪里来的呢。

发现Docker Client会默认发送Dockerfile同级目录下的所有文件到Dockerdaemon中

 

解决办法有两种:

 

1.创建.dockerignore文件,把不需要的文件写到里面,该文件包含的目录不会被发送到Docker daemon中

 

2.就找个空目录只有dockerfile。