如何仅推送泊坞窗图像中的特定更改

时间:2017-04-11 16:51:11

标签: docker dockerfile

所以,我正在创建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中修改过的更改?

1 个答案:

答案 0 :(得分:2)

只要没有变化:

  • RUN mkdir test
  • Dockerfile之前的行
  • 以及上一行中引用的上下文中的所有文件(默认目录包含Dockerfile

运行后续docker build时,守护程序将使用该项目以前版本的缓存。如果图像是从头开始构建的,则意味着其中一个条件不满足。

Docker镜像以图层形式保存和传输。虽然docker images将显示该图像的总大小,但是docker足够智能,可以重用多个图像之间共享的图层 - 这意味着 - 如果缓存按预期工作,则后续构建和推送应该比您执行的更快从零开始。