当Docker容器启动后,如果忘记启动参数,比如目录挂载、端口映射等,可以通过Portainer等容器管理工具查看。但是,有时希望能获取容器启动的命令行,因为需要再启动一个类似容器,怎么办呢?
有一款工具叫runlike,可以输出容器运行的命令行。
安装与使用
pip install runlike
使用也极其简单
runlike [container-id]
示例
例,输出Jellyfin容器的启动命令行脚本
root@xxx:~# runlike 12f212af60e2 -p
docker run --name=jellyfin2 \
--hostname=c3714a0e01fb \
--mac-address=02:42:ac:11:00:06 \
--volume=/mnt/hdd_hikvision/movies:/media \
--volume=0c95706939e32e2bfd08455b08b8f92f5c5da5a9f2911e466eabf39ab78ef535:/cache \
--volume=/home/containers/jellyfin2:/config \
--cap-add=AUDIT_WRITE \
--cap-add=CHOWN \
--cap-add=DAC_OVERRIDE \
--cap-add=FOWNER \
--cap-add=FSETID \
--cap-add=KILL \
--cap-add=MKNOD \
--cap-add=NET_BIND_SERVICE \
--cap-add=NET_RAW \
--cap-add=SETFCAP \
--cap-add=SETGID \
--cap-add=SETPCAP \
--cap-add=SETUID \
--cap-add=SYS_CHROOT \
--cap-drop=AUDIT_CONTROL \
--cap-drop=BLOCK_SUSPEND \
--cap-drop=DAC_READ_SEARCH \
--cap-drop=IPC_LOCK \
--cap-drop=IPC_OWNER \
--cap-drop=LEASE \
--cap-drop=LINUX_IMMUTABLE \
--cap-drop=MAC_ADMIN \
--cap-drop=MAC_OVERRIDE \
--cap-drop=NET_ADMIN \
--cap-drop=NET_BROADCAST \
--cap-drop=SYSLOG \
--cap-drop=SYS_ADMIN \
--cap-drop=SYS_BOOT \
--cap-drop=SYS_MODULE \
--cap-drop=SYS_NICE \
--cap-drop=SYS_PACCT \
--cap-drop=SYS_PTRACE \
--cap-drop=SYS_RAWIO \
--cap-drop=SYS_RESOURCE \
--cap-drop=SYS_TIME \
--cap-drop=SYS_TTY_CONFIG \
--cap-drop=WAKE_ALARM \
--network=bridge \
-p 32778:8096 \
-p 32770:8920 \
--restart=no \
--device /dev/dri/card0:/dev/dri/card0 \
--device /dev/dri/renderD128:/dev/dri/renderD128 \
--add-host api.themoviedb.org:52.84.18.87 \
--add-host api.themoviedb.org:54.192.18.90 \
--runtime=runc \
--detach=true \
nyanmisaka/jellyfin:230901-amd64
输出的内容比较详细,有些不需要的参数可以直接删除