docker - 停止时如何在Docker容器中修改启动脚本?

标签 docker boot2docker

我们有一个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/

    相关文章:

    mysql - Ubuntu docker sh mysql脚本运行

    java - Docker 统计 100% 内存

    bash - bash脚本在多个docker-compose环境中运行测试

    elasticsearch - boot2docker在本地主机上访问elasticsearch

    macos - Fig 应该在 Vagrant VM 内部还是 OSX 外部?

    docker - 如何从 `docker-machine `访问容器的路径

    docker - 如何让 Docker for Windows 生成明文身份验证 key 以访问 Docker Hub 上的私有(private)镜像?

    bash - 如何在Docker Quickstart Terminal中编辑.py脚本?

    macos - Mac上的Docker在更改ssl证书的代理后面

    linux - 更改键盘布局 boot2docker tinycore