【发布时间】:2021-09-19 21:57:00
【问题描述】:
在尝试从一个容器到另一个容器运行 redis 命令时出现连接错误的任何想法? 我正在尝试在本地运行旧的 python 2.7 lambda,以便在升级到 3.8.10 之前进行测试 我正在运行一个构建 redisdb 容器并将其与 my_app 容器链接的脚本:
docker build . -t my_app:latest
docker pull redis:3.2.4-alpine && \
docker run --name=redisdb -d redis:3.2.4-alpine redis-server
docker run \
--rm -t -i -d \
--link redisdb:redis \
-h redis -p 6379 \
-e CONFIG_FILE=local_config.yaml \
my_app
我正在使用以下命令在 my_app 上运行 python 脚本:
r = redis.Redis()
r.mset({"Bahamas": "Nassau"})
print(r.get("Bahamas"))
我也在这里尝试了最重要的建议:Error 99 connecting to localhost:6379. Cannot assign requested address 并通过了r = redis.Redis(host='localhost', port=6379, decode_responses=True),结果相同。
每次我尝试在 my_app 容器中运行该 python 脚本时,我都会得到:
redis.exceptions.ConnectionError: Error 99 connecting to localhost:6379. Cannot assign requested address.
当我运行容器然后检查 docker ps 我得到这个:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
76aea9308821 mar-atlas-readings-processor "python2" About a minute ago Up About a minute 0.0.0.0:64098->6379/tcp mar-atlas-readings-processor
f313113341de redis:3.2.4-alpine "docker-entrypoint.s…" About a minute ago Up About a minute 6379/tcp redisdb
这显示了正确的端口连接。
【问题讨论】:
-
首先检查你的容器是否正在运行? sudo docker ps