使用docker-compose保护docker中的Redis

时间:2019-07-04 14:02:39

标签: docker redis docker-compose

我有一个docker-compose.yaml文件,如下所示,我想确保服务器上的端口6379没有暴露于Internet(只是提到的第一个容器“ web”)。

如果我只是从“ redis:”部分中删除“ expose”链接,是否会使我的redis在内部工作,但阻止其从外部访问?

version: '2'

services:
    web:
        image: myimage/version1:1.4.5
        restart: always
        ports:
            - 8082:3000
        container_name: web
        networks:
            - web
            - default
        expose:
            - '3000'
        labels:
            - 'traefik.docker.network=web'
            - 'traefik.enable=true'
            - 'traefik.basic.frontend.rule=Host:abcd.com'
            - 'traefik.basic.port=3000'
            - 'traefik.basic.protocol=http'
        depends_on:
            - redis
    redis:
      image: redis:4.0.5-alpine
      restart: always
      ports:
        - 6379:6379
      expose:
        - 6379
      command: ["redis-server", "--appendonly", "yes"]
      hostname: redis
      networks:
        - web
      volumes:
        - redis-data:/data


networks:
    web:
        external: true

volumes:
  redis-data:

1 个答案:

答案 0 :(得分:1)

Expose使得该端口只能由所需的链接服务访问。您应该删除redis ports,以便端口不会绑定到主机。