【问题标题】:how do i connect to redis server in python script inside a Docker container我如何在 Docker 容器内的 python 脚本中连接到 redis 服务器
【发布时间】:2021-02-16 22:43:14
【问题描述】:

这是我的python文件'app.py'

import redis
cache = redis.Redis(host='redis', port=6379)
for i in range(8):
  cache.set(i,i)
for i in range(8):
  print(cache.get(i))        

这是我的 Dockerfile

FROM python:3.7-alpine
COPY . /code
WORKDIR /code
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
CMD ["python", "app.py"] 

但是当我构建并运行 docker 镜像时,我遇到了无法连接的错误。

【问题讨论】:

  • 错误是什么?主机名redis 应该匹配什么?

标签: python-3.x docker redis dockerfile


【解决方案1】:

你基于镜像运行的容器不知道'redis'是谁。您可以通过使用--add-host 选项来告诉它docker run

找出你的 redis 服务器的公共 IP。然后使用该 IP 将其映射到您的脚本尝试连接的 redis 主机名。

docker run --add-host redis:<public_ip> ....

【讨论】:

  • 最好还是使用服务器的DNS名称; --add-host 是手动配置,每次运行容器时都必须重现。
猜你喜欢
  • 2018-05-02
  • 1970-01-01
  • 2022-01-04
  • 2019-11-22
  • 2020-06-13
  • 2020-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多