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

蒂莫西·沃格尔

我在SO和Google上关注了其他问题的答案,但仍然无法连接。以下是我的尝试。感谢您提出的所有建议,以使它正常工作。

请注意,在此测试期间,所有防火墙均被禁用。

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,我为Windows运行redis客户端,它只是挂了

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:完成。

您永远不需要所返回的IP地址docker inspect,并且在几种非常常见的设置中无法访问该IP地址我建议绝对不要尝试查找它。例如,如果您在另一台主机上,或者您正在使用Docker for Mac或Docker Toolbox,则将无法访问Docker专用IP地址。完成此操作的方法docker run -p是正确的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章