我经常发现自己需要重新创建容器,并对docker run最初用于容器的参数进行细微修改(例如更改已发布的端口、网络、内存量)。
现在我正在制作图像并运行它们来代替旧容器。
这工作正常,但我并不总是docker run保存原始参数,有时(特别是当有很多东西要定义时)恢复它们变得很痛苦。
有没有办法docker run从现有容器中恢复参数?
很抱歉迟到了几年,但我有一个类似的问题并且还没有令人满意的答案,所以我仍然需要找到我的出路。
我找到了两个解决这个问题的来源:
要运行,请将其保存到文件中,例如
run.tpl并执行docker inspect --format "$(<run.tpl)" name_or_id_of_running_container
快速运行:
$ docker run --rm -v /var/run/docker.sock:/var/run/docker.sock nexdrew/rekcod <container>
两种解决方案都非常易于使用,但是第二个解决方案未能为 Nginx 容器生成命令,因为他们没有设法像这样引用它 "nginx" "-g" "daemon off;"
所以,我把重点放在第一个解决方案,这是为了养活一个golang模板--format的参数docker inspect。我喜欢它,因为它有点简单、优雅,而且不需要其他工具。
我对我的分叉要点做了一些改进,并通知了原作者。
执行此操作的最佳方法是不要手动键入命令。将它们放入 shell 脚本中... .shlinux/mac 上的文件,或.cmdWindows 上的文件。然后你只需运行 shell 脚本来创建你的容器,你永远不必担心重新输入命令和选项,你永远不会弄错它们,等等。
就我个人而言,我在 package.json 文件中使用“npm scripts”编写脚本。但使用任何可以使用参数运行命令行程序的工具都可以完成同样的事情
我这样做以及其他一些技巧是为了确保我永远不会失败构建我的图像或运行我的容器。让 docker 的生活变得更加轻松。:)
| 归档时间: | 
 | 
| 查看次数: | 1055 次 | 
| 最近记录: |