我的docker镜像已经下载,容器已经创建出来了,我现在想获取我创建容器的命令是啥,如何获取
·
想知道创建现有Docker容器的命令,这里推荐几种方法,尤其第一种工具能直接帮您“回忆”起来。
🔍 使用 runlike 工具直接获取命令
最推荐的方法是使用一个名为 runlike 的第三方工具,它可以像“时光机”一样,直接打印出创建指定容器的完整命令。
-
安装
runlike
您可以通过pip直接安装:pip install runlike或者,如果不想安装,也可以通过一个别名直接以容器方式运行它(免安装):
alias runlike="docker run --rm -v /var/run/docker.sock:/var/run/docker.sock assaflavie/runlike" -
使用
runlike获取命令
安装后,使用方法非常简单,只需提供容器名称或ID即可:runlike <容器名称或ID>例如,如果你的容器名叫
my_web_server,就执行:runlike my_web_server执行后,终端会直接显示出最初创建这个容器时使用的
docker run命令及所有参数。
这个工具能自动解析容器的所有配置(如端口映射、环境变量、卷挂载等),并组装成可执行的命令,非常方便。
🔎 通过 docker inspect 手动查找线索
如果由于某些原因无法使用 runlike,您也可以通过 Docker 自带的 docker inspect 命令来查看容器的详细配置,然后“拼凑”出命令。这个方法更底层,能帮助您理解命令的各个部分。
基本用法如下:
docker inspect <容器名称或ID>
这会输出一个非常详细的 JSON 格式配置文件。您无需完全理解它,只需知道关键配置对应的字段即可。下表列出了 docker run 命令常见选项在 inspect 输出中的位置:
docker run 选项 | 在 inspect 输出中的主要查找路径 |
|---|---|
--name | .Name |
-p (端口映射) | .NetworkSettings.Ports |
-v (卷挂载) | .Mounts |
-e (环境变量) | .Config.Env |
--restart | .HostConfig.RestartPolicy.Name |
-it (交互终端) | 检查 .Config.Tty 和 .Config.OpenStdin 是否为 true |
例如,想快速获取容器的 IP 地址,可以使用:
docker inspect -f='{{.NetworkSettings.IPAddress}}' <容器名称或ID>
docker inspect 命令可以查询容器各方面的详细信息。
⚠️ 重要提示
docker inspectvsrunlike:docker inspect展示的是容器当前的全部低层配置,而runlike尝试重建创建容器时使用的命令行。对于需要精确复现创建命令的场景,runlike更直接高效。- 命令来源:这些方法找回的是您当初在宿主机上执行的
docker run命令。如果容器是通过 Docker Compose 或其他编排工具创建的,这些命令找回的是最终由 Docker 引擎执行的那个容器运行命令。
希望这些方法能帮您找回所需的命令!如果容器是通过 Docker Compose 配置的,情况会略有不同,需要其他协助随时可以再问我。
更多推荐


所有评论(0)