使用traefik时拒绝Redis连接
我很难使用traefik为我的所有应用程序配置一个redis容器。这是我的配置: 1-Traefik和Redis的Docker compose: 版本:“2”使用traefik时拒绝Redis连接,redis,traefik,Redis,Traefik,我很难使用traefik为我的所有应用程序配置一个redis容器。这是我的配置: 1-Traefik和Redis的Docker compose: 版本:“2” services: proxy: container_name: traefik image: traefik:1.3.6-alpine command: --docker ports: - 80:80 volumes: - /var/run/docker.sock:/v
services:
proxy:
container_name: traefik
image: traefik:1.3.6-alpine
command: --docker
ports:
- 80:80
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./traefik.toml:/traefik.toml
networks:
- proxy
labels:
- traefik.frontend.rule=Host:monitor.company.dev
- traefik.port=8080
redis:
container_name: main_redis
image: redis:3.2
restart: always
volumes:
- ./data/redis:/data
networks:
- proxy
labels:
- traefik.backend=main-redis
- traefik.default.protocol=http
- traefik.frontend.rule=Host:main-redis.company.dev
- traefik.docker.network=proxy
- traefik.port=6379
networks:
proxy:
external: true
2-Docker compose用于我的PHP应用程序
version: '2'
services:
...
php:
container_name: myapp_php
build: ./docker/php # php:7.1-fpm base image
networks:
- internal
- proxy
labels:
- traefik.enable=false
- traefik.docker.network=proxy
expose:
- 9000
networks:
proxy:
external: true
internal:
external: false
我试图在两个端口6379
和80
上将我的php应用程序连接到main redis.company.dev
,但收到一条redis::connect():connect()失败:连接被拒绝
消息
我还在我的redis.conf
中更改了这些内容:
用bind 127.0.0.1对行进行了注释
并将保护模式
更改为否
我的docker容器保持在同一个网络中,因此我认为它应该可以工作。有人知道我为什么会遇到这个问题吗?首先,从您的redis服务定义中删除traefik标签,traefik目前(2017年11月)是一个HTTP代理,因此您不能像那样公开端点
请看这里:
然后,要将php服务连接到redis服务,看起来您正在尝试在同一个docker实例中(而不是在外部)进行连接
与主redis.company.dev:6379不同,它应该类似于以下内容之一:
- redis:6379
- main_redis:6379
- %项目名称%\u redis:6379
根据您部署容器的方式发生了什么?你应该提出一个明确的问题:)我在尝试从我的应用程序连接到主redis时遇到“连接被拒绝”错误。