Redis Docker 连接被拒绝

标签 redis docker boot2docker dockerfile docker-compose

我刚刚构建了redis docker实例

$ docker pull redis

之后我像这样运行它。

$ docker run --name=redis --detach=true --publish=6379:6379 redis

我得到以下内容

$ docker ps 
key        redis   "/sbin/entrypoint.sh"    22 minutes ago      Up 22 minutes       0.0.0.0:6379->6379/tcp   redis

对我来说,以上意味着它现在正在监听 localhost 或 127.0.0.1 或 0.0.0.0 上的端口 6379。

但令我惊讶的是,当我尝试连接时,却以连接被拒绝的方式响应。

请有人可以点亮一下。

最佳答案

您需要提供有关您的环境(操作系统、Docker 安装等)的更多信息,但基本上,如果您像这样启动 Redis 容器:

docker run --name=redis-devel --publish=6379:6379 --hostname=redis --restart=on-failure --detach redis:latest

无论如何它都应该暴露端口。您可能无法连接到它的唯一原因是,如果您弄乱了网桥接口(interface),如果您使用的是 Linux,或者您使用的是具有自己的网络接口(interface)和 IP 地址的 docker 机器,而您重新连接到该 IP 地址。如果你使用 Docker for Mac,那么它只支持路由到 localhost 地址,因为 Mac 主机上的桥接还不能工作。

无论如何,在带有 Docker for Mac(而不是旧的 Docker Toolbox)的 MacOS 上,以下内容应该足以让您入门:

➜  ~ docker run --name=redis-devel --publish=6379:6379 --hostname=redis --restart=on-failure --detach redis:latest
6bfc6250cc505f82b56a405c44791f193ec5b53469f1625b289ef8a5d7d3b61e
➜  ~ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
6bfc6250cc50        redis:latest        "docker-entrypoint.s…"   10 minutes ago      Up 10 minutes       0.0.0.0:6379->6379/tcp   redis-devel
➜  ~ redis-cli ping
PONG
➜  ~ 

关于Redis Docker 连接被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33675914/

相关文章:

python - 为应用程序编写单元测试的模拟 redis

docker - list 列表条目中没有 windows/amd64 10.0.16299 的匹配 list 拉取 hello-world 图像时出错

redis - 有没有办法将 ReJSON 与 GEOADD 一起使用?

c# - 从运行.Net Core的不同容器访问Docker卷文件

mysql - 从撰写到集群 : Lost connection to MySQL server at 'reading authorization packet'

Windows + Boot2Docker, 如何添加 D :\drive to be accessible from within docker?

windows - docker-machine:没有机器名,不存在 "default"

Docker 运行连接超时

redis - redis cli中有pipe的概念吗?

python - 在 Redis 中获取多个哈希的最有效方法是什么?