Supervisorで複数のプロセス(RQワーカー、RQダッシュボード、Flaskアプリケーション)を実行する単一のDockerコンテナソリューションを置き換えるドッカー作成ファイルをセットアップしようとしています。接続しようと、docker-compose:コンテナ間のredis接続が拒否されました
version: '2'
services:
redis:
image: redis:latest
rq-worker1:
build: .
command: /usr/local/bin/rqworker boo-uploads
depends_on:
- redis
「RQ-worker1」PythonのRQ workerです:
ホストシステムはDebianの8のLinuxで、私のdocker-compose.yml
はこのようになります(私は、誤差源を減らすために他のすべてのエントリを削除しました) localhostのポート6379経由でのRedis、それは接続を確立するために失敗します
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
docker 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
RQワーカーをローカルIP 0.0.0.0/127.0.0.1、さらにはローカルホストに対して実行してみました。 Stackoverflowに掲載された他のソリューションも私にとっては役に立たなかった(例えばdocker-compose: connection refused between containers, but service accessible from host)。
そして、これは私のdocker info
出力されます。
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
誰もが二つの容器の間の接続がうまくいかない理由のアイデアを持っていますか? rq-worker1
からあなたのコードlocalhost
で
ありがとうございました!それは接続エラーを解決しました。私は、すべてのPythonコマンドに "redis"に接続するためのホストパラメータを使用し、それは完全に動作します。 – henning82