从容器中重builddocker运行命令参数

什么是从现有的docker集装箱重builddocker run命令参数的最佳方法? 我可以使用docker inspect并使用在那里find的信息。 有没有更好的办法?

不是很容易,但你可以通过格式化docker inspect的输出来完成。 对于以此命令启动的容器:

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

您可以使用以下命令取出卷,端口映射,环境variables,容器名称,映像名称和命令:

 > 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队长Adrian Mouat在输出格式方面有一篇出色的博客文章: Docker Inspect Template Magic 。