我们有一个docker容器,运行方式为:

docker run --name myname -e PROPERTY1=VALUE1   -d image/name

用于构建容器的Dockerfile:
ADD start.sh /
CMD ["/bin/bash","/start.sh"]

是否可以在不重建容器的情况下编辑文件start.sh。

我的猜测是
  • 停止容器
  • 编辑文件
  • 启动容器。

  • 容器停止后如何编辑文件?

    谢谢。

    最佳答案

    您可以按照概述的步骤进行操作,但是这需要确切了解容器文件系统在主机上的位置,并确保您具有修改它的正确权限。那不是我建议的道路。

    理想情况下,您将通过Dockerfile进行所有操作,以便将来可以使用可重现的方式重建图像。当软件包或依赖项需要更新时,您会希望在六个月内实现。您已经知道该怎么做,所以我认为您正在寻找一种快速的方法。

    快速破解(不可复制的结果)

  • docker run您的图像以使其成为容器
  • docker exec -it CONTAINER /bin/bash(或等效的shell)进入正在运行的容器。在容器中编辑文件。退出(通常为ctrl-D)。
  • 这种编辑方法意味着您不必在主机上找到容器的文件系统,也不必协商在此处编辑文件的权限。您已经在文件系统中并在文件系统上。
  • 但是唯一已修改文件的副本位于您的容器内,因此没有其他人可以复制您所做的工作。
  • docker commit CONTAINER REPOSITORY:TAG
  • docker run REPOSITORY:TAG
  • 关于docker - 停止时如何在Docker容器中修改启动脚本?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30083313/

    10-17 01:24