ConnectionError:错误-3连接到redis:6379。再试一次

时间:2018-10-08 17:18:42

标签: docker redis docker-compose

我无法使用自定义redis.conf文件连接Docker容器中的Redis客户端。同样,即使我删除了使用自定义redis.conf文件连接redis的代码,docker仍将尝试连接到自定义redis文件。

Docker.compose.yml

version: '2'
services:
data:
environment:
  - RHOST=redis
command: echo true
networks:
  - redis-net
depends_on:
  - redis
redis:
image: redis:latest
build:
  context: .
  dockerfile: Dockerfile_redis
ports:
  - "6379:6379" 
command: redis-server /etc/redis/redis.conf
volumes:
  - ./redis.conf:/etc/redis/redis.conf

networks:
redis-net:

volumes:
redis-data:

Dockerfile_redis

FROM redis:latest
COPY redis.conf /etc/redis/redis.conf
CMD [ "redis-server", "/etc/redis/redis.conf" ]

这是我连接到Redis的地方。我在redis.conf文件中使用requirepass。

redis_client = redis.Redis(host='redis',password='password1')

有没有办法找出docker使用的原始redis.conf文件,这样我就可以更改密码以确保Redis安全?我只是使用原始的redis.conf文件,该文件是在将redis安装到服务器后使用“ apt install redis”安装的,然后我更改了requirepass。

1 个答案:

答案 0 :(得分:0)

我终于在https://github.com/sameersbn/docker-redis的帮助下解决了这个问题。 在这种情况下,无需将dockerfile用于redis。

Docker.compose.yml:

version: '2'
services:
data:
  command: echo true
  environment:
    - RHOST=Redis
  depends_on:
    - Redis

Redis:
  image: sameersbn/redis:latest
  ports:
    - "6379:6379"
  environment:
    - REDIS_PASSWORD=changeit
  volumes:
    - /srv/docker/redis:/var/lib/redis
  restart: always

redis_connect.py

redis_client = redis.Redis(host='Redis',port=6379,password='changeit')