问题描述
为了便利本地操作远程服务器的Docker,可实时本地去操作远程服务的Docker,就在IDEA中配置了Docker,但是返现远程操作 docker 时,传输文件出现以下 build Log错误。
问题分析
- 通过进度条,可以大概定位成是 daemon的问题,网上找了很多资料都是说 文件过大导致的,但是实际传输的JAR包大小只有60M,而网上给到的解决办法都是吧其他文件挪开,但是不能从根本上解决问题,因为最后还是要传输 jar包
- 后续考虑 映射本地路径来传输文件,原因是 build image的时候,操作过程是在 docker所在的宿主机上执行的,但是在 idea上的映射是只能从 虚拟机映射到 idea所在的本地,所以这个方法不行
接着第二个方法思路,想着从虚拟机的内部进行拷贝,但是在 dockerfile 中是不能够进行虚拟器内部进行拷贝的。 - 切换思路,了解了下 daemon ,发现这个是 docker的 守护进程,然后可以通过配置 /etc/docker/daemon.json 来对 daemon 守护进程进行配置的。按照这个思路,在网上搜索了相关的配置说明,但是大部分都是配置 远程连接的配置,但最后找到了一个全配置的说明,具体内容参见 B-02部分。
- 根据默认参数配置可知,默认的 daemon 的 “shutdown-timeout”: 15,//设置关闭的超时时限(who?) ,他的连接关闭时间是 15s,这样回想起来,基本每次报错都是在 10s 之后。如此可锁定应该跟这个有关系,最后发现正是关闭的超时时间导致最开始的问题。
- 修改后的配置如下: