使用Runlike还原Docker启动命令
0x01 前言
在生产环境中经常遇到用docker run起的容器,但是时间一长就会忘记。使用Runlike可以还原出容器当时的启动命令
0x02 用法
1、使用python pip方式
# 使用pip安装runlike
myluzh@myluzhMacBookPro ~ % pip3 install runlike
Successfully installed runlike-1.5.4
# 查看需要还原启动命令的容器
myluzh@myluzhMacBookPro ~ % docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
76ec0f563663 n8nio/n8n:latest "tini -- /docker-ent…" 7 days ago Up 12 seconds 0.0.0.0:5678->5678/tcp n8n
# 使用runlike还原docker run命令
myluzh@myluzhMacBookPro ~ % runlike -p n8n
docker run --name=n8n \
--volume /home/node/.n8n \
--env=N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \
--env=N8N_RUNNERS_ENABLED=true \
--env=GENERIC_TIMEZONE=Asia/Shanghai \
--env=TZ=Asia/Shanghai \
--workdir=/home/node \
-p 5678:5678 \
--restart=unless-stopped \
n8nio/n8n:latest
2、使用docker方式
# 拉取runlike容器
myluzh@myluzhMacBookPro ~ % docker pull assaflavie/runlike:latest
# 查看需要还原启动命令的容器
myluzh@myluzhMacBookPro ~ % docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
76ec0f563663 n8nio/n8n:latest "tini -- /docker-ent…" 7 days ago Up 12 seconds 0.0.0.0:5678->5678/tcp n8n
# 通过临时Docker容器运行runlike工具,逆向分析并输出名为 n8n 的容器的原始 docker run 启动命令。
myluzh@myluzhMacBookPro ~ % docker run --rm -v /var/run/docker.sock:/var/run/docker.sock assaflavie/runlike:latest n8n
docker run --name=n8n --hostname=76ec0f563663 --user=node --mac-address=02:42:ac:11:00:02 --volume /home/node/.n8n --env=N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true --env=N8N_RUNNERS_ENABLED=true --env=GENERIC_TIMEZONE=Asia/Shanghai --env=TZ=Asia/Shanghai --workdir=/home/node -p 5678:5678 --restart=unless-stopped --runtime=runc --detach=true n8nio/n8n:latest