我无法使用自定义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。
答案 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')