知道为什么在尝试从一个容器运行redis命令到另一个容器时会出现连接错误吗?我试图在本地运行一个旧python2.7lambda,以便在升级到3.8.10之前进行测试,我正在运行一个用my_app容器构建和链接redisdb容器的脚本:
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
这显示了正确的端口连接。
发布于 2021-07-09 14:43:47
您的python应用程序试图在localhost上与Redis对话,但Redis容器位于另一个本地主机上。
您应该能够使用docker run ...
命令(即redisdb
)中为host
选项配置的链接。
https://stackoverflow.com/questions/68318473
复制相似问题