从现有docker容器重构docker run
命令参数的最佳方法是什么?我可以用docker inspect
,用这里的信息。有更好的办法吗?
不是很容易,但是你可以通过格式化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船长Adrian Mouat有一篇关于格式化输出的优秀博客文章:Docker Inspect Template Magic
请参见此回答,该回答链接到一个工具,该工具以编程方式从容器派生docker run
命令。