20 redis docker docker-compose
我的redis容器被定义为我的docker_compose.yml中的标准图像
redis:
image: redis
ports:
- "6379"
Run Code Online (Sandbox Code Playgroud)
我想它正在使用标准设置,比如在localhost上绑定到Redis我需要将它绑定到0.0.0.0,无论如何都要添加本地redis.conf文件来更改绑定并让docker-compose知道吗?
谢谢你的任何招数......
Adr*_*uat 33
是.只需redis.conf使用卷安装超过默认值:
redis:
image: redis
volumes:
- ./redis.conf:/usr/local/etc/redis/redis.conf
ports:
- "6379"
Run Code Online (Sandbox Code Playgroud)
或者,在复制conf文件的情况下,根据redis映像创建一个新映像.完整说明位于:https://registry.hub.docker.com/_/redis/
但是,redis映像0.0.0.0默认绑定到.要从主机访问它,您需要使用Docker已经为您找到的主机映射到的端口docker ps或docker port命令,然后您可以localhost:32678在32678是映射端口的位置访问它.或者,您可以指定要映射到的特定端口docker-compose.yml.
由于您似乎是Docker的新手,如果您从使用原始Docker命令开始而不是从Compose开始,这可能会更有意义.
Ske*_*tic 17
不幸的是,对于 Docker,当涉及到 Redis 配置文件时,事情变得有点棘手,并且答案被评为最佳(我确信没有实际测试过它的人)它不起作用。
但是什么有效,快速且没有麻烦的是:
command: redis-server --bind redis-container-name --requirepass some-long-password --maxmemory 256mb --maxmemory-policy allkeys-lru --appendonly yes
Run Code Online (Sandbox Code Playgroud)
您可以在 yaml docker 文件的命令部分传递您想要的所有变量选项,方法是在其前面添加“--”,然后是变量值。
永远不要忘记设置密码,如果可能,关闭端口 6379。
?谢谢我。
PS:如果您在命令中注意到,我没有使用典型的 127.0.0.1,而是使用 redis 容器名称。这样做的原因是 docker 通过其嵌入式 dns 服务器在内部分配 IP 地址。换句话说,这个绑定地址是动态的,因此增加了额外的安全层。
如果您的 redis 容器被称为“redis”并且您执行命令docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' redis(用于验证正在运行的容器的内部 ip 地址),就 docker 而言,docker 文件中给出的命令将在内部转换为类似的内容:redis-server --bind 172.19.0.5 --requirepass some-long-password --maxmemory 256mb --maxmemory-policy allkeys-lru --appendonly yes
小智 15
老问题,但如果有人仍想这样做,可以使用卷和命令:
command: redis-server /usr/local/etc/redis/redis.conf
volumes:
- ./redis/redis.conf:/usr/local/etc/redis/redis.conf
Run Code Online (Sandbox Code Playgroud)
小智 7
基于 David anwser 但更“Docker Compose”的方式是:
redis:
image: redis:alpine
command: redis-server --include /usr/local/etc/redis/redis.conf
volumes:
- ./redis/redis.conf:/usr/local/etc/redis/redis.conf
Run Code Online (Sandbox Code Playgroud)
这样,您就可以使用该docker-compose.yml文件包含 .conf 文件,并且不需要自定义图像。
小智 5
/usr/local/etc/redis/redis.confredis-server添加要使用您的配置执行的命令 redis:
image: redis:7.0.4-alpine
restart: unless-stopped
volumes:
- ./redis.conf:/usr/local/etc/redis/redis.conf
command: redis-server /usr/local/etc/redis/redis.conf
########################################
# or using command if mount not work
########################################
command: >
redis-server --bind 127.0.0.1
--appendonly no
--save ""
--protected-mode yes
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21535 次 |
| 最近记录: |