无法从docker实例外部连接到windows上的docker redis

无法从docker实例外部连接到windows上的docker redis,docker,redis,Docker,Redis,我在这里通过谷歌追踪了其他问题的答案,但仍然无法连接。下面是我的尝试。我很感激任何能让这个工作正常进行的建议 注意:在此测试期间,所有防火墙都被禁用 PS C:\WINDOWS\system32> docker run -d --name myredis -p 6379:6379 redis Unable to find image 'redis:latest' locally latest: Pulling from library/redis f5d23c7fed46: Pull co

我在这里通过谷歌追踪了其他问题的答案,但仍然无法连接。下面是我的尝试。我很感激任何能让这个工作正常进行的建议

注意:在此测试期间,所有防火墙都被禁用

PS C:\WINDOWS\system32> docker run -d --name myredis -p 6379:6379 redis
Unable to find image 'redis:latest' locally
latest: Pulling from library/redis
f5d23c7fed46: Pull complete
a4a5c04dafc1: Pull complete
605bafc84bc9: Pull complete
f07a4e35cd96: Pull complete
17944e5e3eb7: Pull complete
6f875a8605e0: Pull complete
Digest: sha256:8888f6cd2509062a377e903e17777b4a6d59c92769f6807f034fa345da9eebcf
Status: Downloaded newer image for redis:latest
3f65a413985e513ef3e9a578b09a3c8729a214c767197d9e34268a38114e39c6
PS C:\WINDOWS\system32> docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
3f65a413985e        redis               "docker-entrypoint.s…"   7 seconds ago       Up 6 seconds        0.0.0.0:6379->6379/tcp   myredis
PS C:\WINDOWS\system32> docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' myredis
172.17.0.2
PS C:\WINDOWS\system32> docker exec -it myredis redis-cli
127.0.0.1:6379> ping
PONG
以上内容向我表明,redis正在docker映像上运行,并在docker映像和主机上的6379端口上侦听。在另一个powershell中,我运行redis client for windows,它只是挂起

PS D:\Program Files\Redis> ./redis-cli
127.0.0.1:6379> connect 172.17.0.2 6379
docker run-p选项在主机的IP地址上发布服务的端口,您可以从docker外部连接到该端口。如果您位于运行容器的同一物理主机的控制台上,则可以使用特殊主机名localhost或匹配的特殊IPv4地址127.0.0.1访问容器。但是,如果您在一个容器中,localhost通常指的是这个容器

在最后一个redis cli命令中,它表示已连接到127.0.0.1:6379,您已经连接到容器化redis:完成了


您永远不需要docker inspect返回的IP地址,并且在一些非常常见的设置中无法访问该地址;我建议永远不要去查它。例如,如果您在另一台主机上,或者使用Docker for Mac或Docker Toolbox,您将无法访问Docker专用IP地址。您使用docker run-p执行此操作的方式是正确的。

您能否在forground中运行redis并检查日志docker inspect命令的IP地址在许多环境中基本上是无用的;我建议永远不要运行它。docker run-p选项应该可以通过标准端口上主机的IP地址访问它;如果您在示例末尾键入ping,并从同一台物理主机上的控制台连接到127.0.0.1:6379,我希望它能工作。@DavidMaze谢谢!这就像一个符咒。。。现在是一个真正的客户。如果你发表你的评论作为回答,我很乐意接受。