docker - 重用以前使用的Docker容器

标签 docker containers

如果我在Docker容器中,则可以使用 Ctrl + P + Q 或通过使用 exit 命令将其停止,但是从该容器退出后如何保存其状态,以便可以将同一个容器与所有容器一起使用变化仍然存在。另外,如果我使用 docker commit 来保存容器,则它会挂起。那么,有什么方法可以使用退出状态相同的容器?

最佳答案

您可以将源代码控制操作放入Dockerfile中列出的最后一个RUN中。

但是为了使它成为唯一的命令,从而确保它每次都能运行,您可以将Docker构建包装在另一个脚本中,该脚本为克隆操作生成唯一编号的迷你脚本。

此步骤会将该脚本的调用插入到在构建时间之前即时生成的Dockerfile中,这样对于每次必须运行的操作(克隆),其RUN语句的确是唯一的,即

RUN /bin/sh /foo-1234567abc.sh

其中为每个构建唯一生成foo-1234567abc(随后的执行创建类似foo-26190def.sh的东西)并包含克隆操作,即
cd /some/dir && /usr/bin/git clone http://some.git.server/your-repo.git

它本身可能很少或永远不会改变。

这保证了Docker将在每次构建期间运行克隆,同时具有以下优点:既可以完全自动化,又可以确保直到最后一个唯一的RUN都使用缓存。

有关更多信息,请参见here

关于docker - 重用以前使用的Docker容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38094717/

相关文章:

azure - 通过应用服务节省 Azure 计费成本?

shell 脚本 : Remove hello world docker container without knowing ID

maven - 如何解决异常 : basedir doesnot exist

docker - GKE:Docker登录始终成功,但是即使使用有效的凭证,推送也无法正常工作

json - 在gcloud上使用kubernetes暴露端口80?

C#,容器的火灾事件

docker - jenkinsfile-如何使用脚本化管道启动docker节点

python - Docker Django 404 用于 web 静态文件,但适用于管理静态文件

docker - 如何重新启动已停止的docker/whalesay容器?

bash - 如何在 docker 容器中安装/启动 docker 引擎服务