PowerShell访问运行中Docker容器报错:找不到curl镜像求助
问题解决方法
错误原因
你执行的docker run curl -d '{ "action" : "version" }' localhost:17076是试图拉取并启动一个全新的curl容器来执行命令,但Docker官方仓库没有名为curl的镜像(正确的官方镜像为curlimages/curl),所以触发了拉取失败的报错。而你的需求是访问正在运行的现有容器的服务,这个命令完全不符合实际需求。
正确访问方式
方式一:直接在PowerShell中访问(宿主环境)
如果你的Windows系统已经安装了curl,直接跳过docker run,执行原生curl命令:
curl -d '{ "action" : "version" }' localhost:17076
如果没装curl,用PowerShell自带的Invoke-RestMethod替代:
Invoke-RestMethod -Uri localhost:17076 -Method Post -Body '{ "action" : "version" }' -ContentType "application/json"
方式二:在运行中的目标容器内执行curl
先通过docker ps获取目标容器的名称或ID,假设容器名为my-running-container,执行以下命令进入容器内部执行curl:
docker exec my-running-container curl -d '{ "action" : "version" }' localhost:17076
注意:如果容器内的服务需要访问宿主机器的端口,Windows环境下需要将
localhost替换为host.docker.internal,这是Docker提供的宿主机器别名。
内容的提问来源于stack exchange,提问作者dunkiero
相关产品推荐
相关产品推荐

