我刚刚构建了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/