복붙노트

[REDIS] 고정 표시기-작성은 : 연결 컨테이너 사이 거부 레디 스

REDIS

고정 표시기-작성은 : 연결 컨테이너 사이 거부 레디 스

나는 설치에 감독자와 여러 프로세스 (RQ 노동자, RQ 대시 보드와 플라스크 응용 프로그램)를 실행 한 부두 노동자 컨테이너 솔루션을 대체하기 위해 만들어진 것입니다 고정 표시기-작성 파일을하려합니다.

호스트 시스템은 데비안 8 리눅스와 같은 내 고정 표시기 - compose.yml의 모습 (I 오류 소스를 줄이기 위해 다른 모든 항목을 삭제)입니다 :

version: '2'
  services:
    redis:
      image: redis:latest
    rq-worker1:
      build: .
      command: /usr/local/bin/rqworker boo-uploads
      depends_on:
        - redis

"RQ-worker1에는"로컬 호스트와 포트 6379를 통해 레디 스에 연결을 시도, 파이썬 RQ 노동자이지만, 연결을 설정하는 데 실패

redis_1       | 1:M 23 Dec 13:06:26.285 * The server is now ready to accept connections on port 6379
rq-worker1_1  | [2016-12-23 13:06] DEBUG: worker: Registering birth of worker d5cb16062fc0.1
rq-worker1_1  | Error 111 connecting to localhost:6379. Connection refused.
galileoqueue_rq-worker1_1 exited with code 1

고정 표시기의 PS의 출력은 다음과 같습니다 :

CONTAINER ID        IMAGE               COMMAND                      CREATED             STATUS              PORTS               NAMES
36cac91670d2        redis:latest        "docker-entrypoint.sh"   14 minutes ago      Up About a minute   6379/tcp                galileoqueue_redis_1

나는 로컬 IP를 0.0.0.0 / 127.0.0.1 심지어 로컬 호스트에 대한 RQ 노동자를 실행하는 모든 것을 시도했다. 유래에 게시 된 다른 솔루션은 내게 너무 (고정 표시기-작성을 : 연결 컨테이너 사이에 거절하지만, 예를 들어, 호스트에서 서비스에 액세스 할) 일을하지 않았다.

그리고 이것은 내 고정 표시기 정보 출력은 다음과 같습니다

Containers: 25
  Running: 1
  Paused: 0
  Stopped: 24
Images: 485
Server Version: 1.12.5
Storage Driver: aufs
  Root Dir: /var/lib/docker/aufs
  Backing Filesystem: extfs
  Dirs: 436
  Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
  Volume: local
  Network: null bridge host overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options:
Kernel Version: 3.16.0-4-amd64
Operating System: Debian GNU/Linux 8 (jessie)
OSType: linux
Architecture: x86_64
CPUs: 8
Total Memory: 13.61 GiB
Name: gp-pc-201
ID: LBGV:K26G:UXXI:BWRH:OYVE:OQTA:N7LQ:I4DV:BTNH:FZEW:7XDD:WOCU

사람이 두 개의 용기하지 않습니다 일 사이에 왜 연결 아이디어가 있습니까?

해결법

  1. ==============================

    1.RQ-worker1에에서 코드 로컬 호스트에있는 RQ-worker1에 자체가되지는 레디 스 당신은 레디 스에 도달 할 수 없습니다 : 6379를 연결하여 RQ-worker1에에서 localhost로. 그러나 기본 레디 스 및 RQ-worker1에 의해 동일한 네트워크에 있고 해당 네트워크의 도메인 이름으로 서비스 이름을 사용할 수 있습니다. 그것은 당신이 예를 들어, 도메인 이름으로 레디 스를 사용하여 RQ-worker1에에서 레디 스 서비스에 연결할 수 있다는 것을 의미한다 : client.connect을 (( "레디 스", 6379))

    RQ-worker1에에서 코드 로컬 호스트에있는 RQ-worker1에 자체가되지는 레디 스 당신은 레디 스에 도달 할 수 없습니다 : 6379를 연결하여 RQ-worker1에에서 localhost로. 그러나 기본 레디 스 및 RQ-worker1에 의해 동일한 네트워크에 있고 해당 네트워크의 도메인 이름으로 서비스 이름을 사용할 수 있습니다. 그것은 당신이 예를 들어, 도메인 이름으로 레디 스를 사용하여 RQ-worker1에에서 레디 스 서비스에 연결할 수 있다는 것을 의미한다 : client.connect을 (( "레디 스", 6379))

    당신은 RQ-worker1에의 설정에서 레디 스에 localhost를 교체해야합니다.

  2. from https://stackoverflow.com/questions/41302791/docker-compose-redis-connection-refused-between-containers by cc-by-sa and MIT license