所以,我正在创建Dockerfile,我正在使用我现有的ansible-wrok。
例如: -
COPY run.sh /root/run.sh
RUN chmod +x /root/run.sh
RUN ansible-playbook ansible/haproxy.yml -vvvv
在上面,DockerFile会创建我的图像。
现在,如果我想在创建图像后添加内容,可以说在容器中创建一个新目录
RUN mkdir test
但是,如果我再次运行docker build命令来创建图像,它将从头开始运行。
有没有办法只推送docker Image中修改过的更改?
答案 0 :(得分:2)
只要没有变化:
RUN mkdir test
Dockerfile
之前的行
Dockerfile
)运行后续docker build
时,守护程序将使用该项目以前版本的缓存。如果图像是从头开始构建的,则意味着其中一个条件不满足。
Docker镜像以图层形式保存和传输。虽然docker images
将显示该图像的总大小,但是docker足够智能,可以重用多个图像之间共享的图层 - 这意味着 - 如果缓存按预期工作,则后续构建和推送应该比您执行的更快从零开始。