【问题标题】:Reconstruct docker run command parameters from container从容器中重构 docker run 命令参数
【发布时间】:2020-10-01 17:29:37
【问题描述】:

从现有 docker 容器中重构 docker run 命令参数的最佳方法是什么?我可以使用docker inspect 并使用那里找到的信息。有没有更好的办法?

【问题讨论】:

  • 看起来docker inspect 是检查正在运行的容器的合适工具。使用它有什么问题?您想直接与 Docker API 对话吗?

标签: docker


【解决方案1】:

不是很容易,但您可以通过格式化docker inspect 的输出来做到这一点。对于使用此命令启动的容器:

> docker run -d -v ~:/home -p 8080:80 -e NEW_VAR=x --name web3 nginx:alpine sleep 10m

您可以通过以下方式提取卷、端口映射、环境变量、容器名称、映像名称和命令:

> docker inspect -f "V: {{.Mounts}} P: {{.HostConfig.PortBindings}} E:{{.Config.Env}} NAME: {{.Name }} IMAGE: {{.Config.Image}} COMMAND: {{.Path}} {{.Args}}" web3

这会给你输出:

V: [{ /home/scrapbook /home   true rprivate}] P: map[80/tcp:[{ 8080}]] E:[NEW_VAR=x PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin NGINX_VERSION=1.11.5] NAME: /web3 IMAGE: nginx:alpine COMMAND: sleep [10m]

这是一个开始。

Docker Captain Adrian Mouat 有一篇关于格式化输出的优秀博文:Docker Inspect Template Magic

【讨论】:

    【解决方案2】:

    另请参阅this answer,它链接到以编程方式从容器派生docker run 命令的工具。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-07
      • 1970-01-01
      • 2016-08-21
      • 2018-07-26
      • 1970-01-01
      • 1970-01-01
      • 2019-09-13
      • 1970-01-01
      相关资源
      最近更新 更多