【发布时间】:2020-02-15 20:51:21
【问题描述】:
我正在尝试从主机 (macOS) 连接到在 Docker 容器内运行的 Redis。
由于我在本地有一个通过自制软件运行的 Redis 实例,因此我尝试将 Docker 容器的 Redis 映射到端口 6380 而不是 6379。(我可以这样做吗?)
➜ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
96c36ee47c62 redis:5.0.6-alpine "docker-entrypoint.s…" 41 seconds ago Up 39 seconds 6379/tcp, 0.0.0.0:6379->6380/tcp redis
当我停止本地运行的 Redis 版本并将容器端口映射到 6379 时,我可以通过 redis-cli 连接到容器。但是使用自定义 6380 端口时,我会收到一个错误:
➜ redis-cli -p 6380
`Could not connect to Redis at 127.0.0.1:6380: Connection refused not connected>` error.
我已经使用以下命令启动了容器
➜ docker run --name redis -d -p 6379:6380 --network mynetwork redis:5.0.6-alpine
我无法在其他端口上连接的原因是什么?谢谢。
【问题讨论】:
-
Docker 私有 IP 地址在多种情况下都不起作用;例如,如果您在 MacOS 或 Windows 主机上,则这些地址不起作用。我会使用其他一种与它们通信的方式——容器名称作为容器之间的主机名,从主机发布的端口。
-
@DavidMaze 感谢您提供的信息。发布问题后,我意识到在默认端口上运行了一个本地 Redis 版本。因为我之前实际上尝试过使用不同的端口,所以我已经更新了问题以更清楚地说明这一点。