我们有一个docker容器,我运行:
docker run --name myname -e PROPERTY1=VALUE1 -d image/name
用于构建容器的Dockerfile:
ADD start.sh /
CMD ["/bin/bash","/start.sh"]
我可以编辑文件start.sh而无需重建容器。
我的猜测是
如何在容器停止时编辑文件?
感谢。
答案 0 :(得分:1)
如果修改start.sh
脚本,则应重建图像。重建图像将比第一次快得多,因为docker能够检测修改并仅重建必要的部分。
答案 1 :(得分:1)
您可以按照您概述的步骤进行操作,但需要确切知道容器文件系统在主机上的位置,并确保您具有修改它的正确权限。这不是我建议的道路。
理想情况下,您可以通过Dockerfile
执行所有操作,以便您将来可以通过重现方式重建图像。当包或依赖项需要更新时,您将在六个月内想要它。你已经知道如何做到这一点,所以我假设你正在寻找快速黑客。
docker run
你的形象让它成为一个容器docker exec -it CONTAINER /bin/bash
(或等效的shell)进入正在运行的容器。在容器中编辑您的文件。退出(通常为ctrl-D)。
docker commit CONTAINER REPOSITORY:TAG
docker run REPOSITORY:TAG