跳到正文
多吃点的小饭桌
目录

容器跑着跑着,忘了当初的启动参数,也没用 docker-compose 管理——这种情况可以用 rekcodrunlike 反向还原出完整的 docker run 命令。

rekcod

Terminal window
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock nexdrew/rekcod <容器名>

runlike

Terminal window
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock assaflavie/runlike <容器名>

两者用法相同,输出略有差异。runlike 的输出更接近标准 docker run 格式,rekcod 则会额外输出一些注释信息。

示例输出

以 EmbyServer 容器为例,还原出的命令如下:

Terminal window
docker run --name EmbyServer \
--privileged \
--runtime nvidia \
-v /mnt:/mnt:rw \
-v /mnt/user/appdata/EmbyServer:/config:rw \
--net host \
--restart no \
--security-opt 'label=disable' \
-h NAS002 \
--expose 1900/udp \
--expose 7359/udp \
--expose 8096/tcp \
--expose 8920/tcp \
-e 'TZ=Asia/Shanghai' \
-e 'NVIDIA_VISIBLE_DEVICES=GPU-5099c04d-07d6-50d5-5fec-92bb0f070789' \
-e 'NVIDIA_DRIVER_CAPABILITIES=all' \
-d \
--entrypoint "/init" \
emby/embyserver:latest

延伸:转换为 docker-compose

如果想进一步将 docker run 命令转换为 docker-compose.yml,可以使用 composerize,支持命令行和网页两种方式。

参考