我正在用Docker制作一个webapp,我需要运行由公共用户编写的代码(一点也不安全),我使用redis在容器之间推送一些数据(使用命名卷中共享的套接字)。
如何禁止不安全的容器向redis发送数据?
我的码头工人作曲。
版本:“3”
服务:
雷迪斯:
图片:redis:最新
命令:&
sh-c“chown redis/tmp/redis/
redis服务器/usr/local/etc/redis/redis.conf“
卷:
-Redis_插座:/tmp/Redis
不安全容器:
建造:
上下文:./docker
DockerFile:DockerFile
命令:python unsafe.py
卷:
-Redis_插座:/tmp/Redis:ro
链接:
-雷迪斯
依赖性:
-雷迪斯
DATAIIN:
建造:
上下文:./docker
Dockerfile:Dockerfile数据
命令:&
sh-c“python3/code/manage.py等待数据库
python3/code/manage.py开始“dc”
卷:
-Redis_插座:/tmp/Redis
链接:
-雷迪斯
依赖性:
-雷迪斯
卷:
重新插座:
< /代码>
如果我做了一个redis从站,我能把这个设置为只接受除主redis之外的所有连接的读取吗?
谢谢
编辑:在一些测试之后,默认情况下从系统是只读的,但我无法使用套接字将从系统连接到主系统,我在文档上找不到有关此功能/问题的任何信息容器(使用命名卷中共享的套接字)
如何禁止不安全的容器向redis发送数据?
我的docker-compose.yml
version: "3"
services:
redis:
image: redis:latest
command: >
sh -c "chown redis /tmp/redis/
redis-server /usr/local/etc/redis/redis.conf"
volumes:
- redis_socket:/tmp/redis
unsafe_container:
build:
context: ./docker
dockerfile: Dockerfile
command: python unsafe.py
volumes:
- redis_socket:/tmp/redis:ro
links:
- redis
depends_on:
- redis
data_in:
build:
context: ./docker
dockerfile: Dockerfile-data
command: >
sh -c "python3 /code/manage.py wait_db
python3 /code/manage.py start_dc"
volumes:
- redis_socket:/tmp/redis
links:
- redis
depends_on:
- redis
volumes:
redis_socket:
如果我做了一个redis从站,我能把这个设置为只接受除主redis之外的所有连接的读取吗?
谢谢
编辑:在一些测试之后,默认情况下从系统是只读的,但是我无法使用套接字将从系统连接到主系统,我在文档中找不到有关此功能/问题的任何信息。