如何显示 docker 容器的运行命令

新手上路,请多包涵

我使用第三方 GUI(Synology Docker 包)来设置 docker 容器。但是,它的限制使我需要从命令行运行容器。 (我想映射另一个主机ip来绑定端口)

现在,由于已经完成了很多设置,我想检索启动这个容器的原始运行命令,然后我可以将端口映射端口更改为新的。例如。 “ docker run -p 80:8080 gitlab

我找不到这样做的方法,事件使用“docker inspect”,没有提供此类信息。

请提供一些建议来解决这个问题。

原文由 Jack Yu 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 377
2 个回答

那么如何逆向工程 docker run 命令呢?

有一个 github 存储库尝试对 docker run 命令进行逆向工程,但目前并不完美,版本是 0.1.2 。您应该按照它进行更新。也许有一天你可以用它来获得正确的运行命令。

 $ sudo pip install runlike

# run the ubuntu image
$ docker run -ti ubuntu bash

$ docker ps -a
# suppose you get the container ID 1dfff2ba0226

# Run runlike to get the docker run command.
$ runlike 1dfff2ba0226
docker run --name=elated_cray -t ubuntu bash

Github 存储库: runlike

更新:

无需安装即可运行(感谢@tilo)

 docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:ro \
    assaflavie/runlike YOUR-CONTAINER

或设置别名并将其放入您的外壳配置文件中

alias runlike="docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:ro assaflavie/runlike"

docker ps

runlike YOUR-CONTAINER

原文由 BMW 发布,翻译遵循 CC BY-SA 4.0 许可协议

一个更简单(?)的替代方法是运行 这个 docker inspect template ,它使用内置的 Go 模板功能输出一个 docker run 兼容命令。该模板仅涵盖最常用的命令行选项,但可以轻松扩展。

该解决方案不依赖于其他工具,除了 docker 本身。

 docker inspect \
  --format "$(curl -s https://gist.githubusercontent.com/efrecon/8ce9c75d518b6eb863f667442d7bc679/raw/run.tpl)" \
  name_or_id_of_your_running_container

原文由 Emmanuel Frécon 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进