如何通过Windows命令行启动Docker Desktop创建的容器
看起来你遇到的问题是命令行里的Docker客户端没和Docker Desktop的引擎同步上,别担心,咱们一步步来解决:
第一步:确保Docker Desktop正在运行
Docker命令行工具需要连接到Docker Desktop的后台守护进程才能操作容器。先看看任务栏右下角的Docker图标是不是处于正常运行状态(没有红色叉号),如果没运行,先启动Docker Desktop,等它完全加载好(图标提示“Docker is running”)再继续。第二步:检查Docker上下文(关键!)
有时候命令行可能切换到了其他Docker上下文(比如WSL专属的Docker环境),导致看不到Desktop创建的容器。打开命令提示符(CMD)或者PowerShell,运行这个命令查看当前上下文:docker context ls
你会看到类似这样的输出,要确保当前上下文是desktop-windows(Windows系统下):NAME TYPE DESCRIPTION DOCKER ENDPOINT default moby Current DOCKER_HOST based configuration npipe:////./pipe/docker_engine desktop-windows * moby Docker Desktop npipe:////./pipe/docker_engine如果当前不是
desktop-windows,用这个命令切换过去:docker context use desktop-windows第三步:列出所有容器(包括停止的)
现在应该能看到Docker Desktop里创建的容器了,运行这个命令列出所有容器:docker ps -a
这个命令会显示所有容器的ID、名称、状态等信息,找到你要启动的容器的容器ID或者名称。第四步:启动目标容器
用下面的命令启动容器,把<容器ID或名称>换成你找到的实际内容:docker start <容器ID或名称>
比如你的容器名称是my-web-app,就运行:docker start my-web-app如果想启动后直接进入容器的终端交互,可以加
-i和-t参数:docker start -it <容器ID或名称>
要是做完这些还是看不到容器,试试重启Docker Desktop,然后重新打开命令行再操作——有时候守护进程的连接会出点小问题,重启就能解决。
备注:内容来源于stack exchange,提问作者Kevin Kleinfelter

