Docker实用工具分享runlike
一、Runlike:简化容器复制的艺术
"See this docker container? I wish I could run another one just like it,
but I'll be damned if I'm going to type all those command-line switches manually!"
这就是runlike的作用。你给它一个docker容器,它会输出运行此容器的命令行,以及所有那些烦人的选项(环境、端口、链接、卷等全部参数)。对于那些通常通过一些CM工具(如Ansible/Chef)部署docker容器,然后发现自己需要手动重新运行某个容器的人来说,这确实节省了时间。。。
二、从命令行到可复用脚本
runlike 通过 docker inspect 信息还原出执行的 docker run 命令,提供容器 ID 即可查询容器的docker run 启动命令。
本文只罗列docker版用法,首次运行需要拉取镜像。
docker run -v /var/run/docker.sock:/var/run/docker.sock assaflavie/runlike YOUR-CONTAINER-ID
操作示例如下:
docker ps -a 输出全部容器
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock assaflavie/runlike -p 591bf0a5f26d 输出第一个容器的运行参数三、Runlike输出的后续应用
从输出结果看可以直接用于快速复制运行容器,免去了重新查找整理参数。
docker run --name=proud_bobo-main_app-1
--hostname=591bf0a5f26d
--mac-address=02:42:ac:11:00:02
--env=APP_COPYRIGHT_URL=http://192.168.1.30:90
--env=APP_ICP=dailyhot
--env='APP_COPYRIGHT=internal only'
--env=OPENAI_API_KEY=sk-xxxxxx
--network=bridge
--workdir=/
-p 90:80
--restart=unless-stopped
--label='com.docker.compose.depends_on='
--label='com.docker.compose.container-number=1'
--label='com.docker.compose.project.working_dir=/var/lib/casaos/apps/proud_bobo'
--label='com.docker.compose.image=sha256:04c23c79a5167d6ef36e7b4e59583e49fe9b96bf15b051ad28ab27dcab8c4178'
--label='com.docker.compose.config-hash=4c3a339e4632e56ba41662d8d9a2a6147fbe17b4f7cf1010e27e5c8d92e98459'
--label='com.docker.compose.project.config_files=/var/lib/casaos/apps/proud_bobo/docker-compose.yml'
--label='com.docker.compose.version='
--label='icon=https://icon.casaos.io/main/all/dailyhot.png'
--label='com.docker.compose.replace=ed50b38f4a677cd0302c43d7462cd8df46de6adbd0133e8f3764ca773c03968b'
--label='com.docker.compose.service=main_app'
--label='com.docker.compose.project=proud_bobo'
--label='com.docker.compose.oneoff=False'
--runtime=runc
--memory="8176795648"
rehiy/dailyhot:latest
附该工具的官网链接https://hub.docker.com/r/assaflavie/runlike/
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
