解决Docker build时 Sending build context to Docker daemon 过大的问题

本文探讨了在使用Dockerfile构建镜像过程中遇到的问题,即构建上下文发送到Docker守护进程时体积过大的原因及解决方法。指出Docker默认会将Dockerfile所在目录下的所有文件发送给守护进程,并提供了两种解决方案:一是使用.dockerignore文件排除不需要的文件;二是选择一个仅包含Dockerfile的空目录。

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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
1
2
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。

本文转自银狐博客51CTO博客,原文链接http://blog.51cto.com/foxhound/1825402如需转载请自行联系原作者

战狐
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值