docker不能从文件连接到redis

我正在使用docker运行docker-up。

在一个文件中,我试图访问使用以下命令创build的redis:

import redis pool = redis.ConnectionPool(host='redis', port=6379, db=0) r = redis.Redis(connection_pool=pool) r.flushall() 

这是我的docker-compose.yml redis部分:

 web: build: . ports: - "8000:8000" links: - db - redis environment: - DATABASE_URL=postgres://user:openhouse2016@db:5432/chat - REDIS_URL=redis://redis:6379/1 volumes: - .:/opt/app db: image: praiskup/postgresql:APIv1.0.1-fedora23 # volumes: # - ./db:/var/lib/pgsql/data environment: - POSTGRESQL_DATABASE=chat - POSTGRESQL_USER=user - POSTGRESQL_PASSWORD=openhouse2016 - POSTGRESQL_CONTAINER_OPTS=assert_external_data = false worker: build: . environment: - DATABASE_URL=postgres://user:openhouse2016@db:5432/chat - REDIS_URL=redis://redis:6379/1 links: - db - redis volumes: - .:/opt/app # we need to wait for database setup command: bash -c "sleep 7 && exec python /opt/app/channels-example/manage.py runworker -v3" redis: image: redis ports: - "6379:6379" migrator: build: . environment: - DATABASE_URL=postgres://user:openhouse2016@db:5432/chat - REDIS_URL=redis://redis:6379/1 links: - db # it indeed takes this long to start the database command: bash -c "sleep 5 && exec python /opt/app/channels-example/manage.py migrate" 

运行后:

 docker-compose down docker-compose build docker-compose up 

一切运行良好,Redis表示已准备好接受端口6379的连接。

但是,上面的python代码生成:

 redis.exceptions.ConnectionError: Error -5 connecting to redis:6379. No address associated with hostname. 

如何从python文件连接到redis?

编辑:

 docker ps -a 

redis显示:

 3a494c9da73d redis "docker-entrypoint.sh" 10 seconds ago Up 9 seconds 0.0.0.0:6379->6379/tcp 

迁移者没有链接到redis。 这固定了它:

 migrator: build: . environment: - DATABASE_URL=postgres://user:openhouse2016@db:5432/chat - REDIS_URL=redis://redis:6379/1 links: - db - redis #this line here was missing # it indeed takes this long to start the database command: bash -c "sleep 5 && exec python /opt/app/channels-example/manage.py migrate"