1、在Dockerfile中更换apt-get为国内源:
在Dockerfile中添加如下两句代码:
RUN sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
RUN apt-get clean
更新apt源的Dockerfile如下:
FROM ubuntu:latest
MAINTAINER itdream "itdream6@163.com"
RUN sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
RUN apt-get clean
RUN apt-get update
2、重新修改 Dockerfile 后,接着上次退出的地方运行:
重新修改 Dockerfile 后,如何能接着之前退出的部分继续 build 呢?
(1)docker的build操作,默认是基于缓存,也就是你修改Dockerfile后,build任务会快速略过你之前成功的步骤,从你修改的那一步之后的操作,都会重新运行;或者dockerfile运行过程中因为网络等原因中断, 接着运行时会从失败的那条RUN开头的命令开始接着处理;所以想接着上次运行,
建议将多条命令拆分到独立的RUN命令; 保证每次可不用重跑上一步的RUN命令。
(2)如果你想每一次build都不基于之前的缓存,在build 命令加上 --no-cache=true 参数;docker build –no-cache将禁用整个Dockerfile的缓存,即整个Dockerfile中的RUN命令都会重新运行;
(3)如果你想在Dockerfile中部分命令运行时,禁止使用缓存,而不是整个Dockerfile中,则可以使用如下办法:在要禁用缓存的命令区域之前插入一些无意义且便宜的运行命令,如 :
ARG CACHEBUST=1
这将禁用所有后续块的缓存。