目录
容器跑着跑着,忘了当初的启动参数,也没用 docker-compose 管理——这种情况可以用 rekcod 或 runlike 反向还原出完整的 docker run 命令。
rekcod
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock nexdrew/rekcod <容器名>runlike
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock assaflavie/runlike <容器名>两者用法相同,输出略有差异。runlike 的输出更接近标准 docker run 格式,rekcod 则会额外输出一些注释信息。
示例输出
以 EmbyServer 容器为例,还原出的命令如下:
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,支持命令行和网页两种方式。