我正在尝试设置一个docker-
compose文件,该文件旨在用Supervisor替换运行多个进程(RQ
worker,RQ仪表板和Flask应用程序)的单个Docker容器解决方案。
主机系统是Debian 8 Linux,我的docker-compose.yml
样子如下(我删除了所有其他条目以减少错误源):
version: '2'
services:
redis:
image: redis:latest
rq-worker1:
build: .
command: /usr/local/bin/rqworker boo-uploads
depends_on:
- redis
“ rq-worker1”是Python RQ工作者,尝试通过本地主机和端口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
我尝试了针对本地IP 0.0.0.0 /127.0.0.1甚至本地主机运行RQ工作器的所有操作。在Stackoverflow上发布的其他解决方案也对我不起作用(docker-compose:容器之间的连接被拒绝,但是可以从主机访问服务
这是我的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
有谁知道为什么两个容器之间的连接不起作用?
在你的代码localhost
从rq-worker1
为rq- worker1
自身,不redis
,你不能达到redis:6379
通过连接到localhost
从rq- worker1
。但是默认情况下redis
,rq- worker1
它们位于同一网络中,您可以在该网络中将服务名用作域名。这意味着您可以redis
通过rq- worker1
使用redis
域名来连接到服务,例如:client.connect(("redis", 6379))
此时应更换localhost
同redis
在的配置rq-worker1
。
我试图为Nginx+PHP(Laravel)+MySQL构建docker组合容器,但我不断收到连接拒绝错误 Docker-compose.yml 在中,我有一个全新的Laravel应用程序,它具有基本的SQL设置 所有容器都运行时没有错误,我可以使用以下方法连接到MySQL容器 但当我试图从浏览器访问或将ssh直接导入php容器时,我总是得到错误2002。 我有nginx和mysql运行在服务器上
试图在localhost中建立从app容器到mysql容器的连接,出现连接拒绝异常 我们正在采取一种docker的方法来调用rest api服务来采用微服务的方法。我们正在建立应用程序容器和mysql容器之间的连接,同时我们编写了一个docker-compose文件,创建了mysql容器和应用程序容器,为这两个容器公开了端口。下面是运行docker-compose文件docker-compose
问题内容: 我正在尝试通过代码访问Redis服务器,但未连接。但是,如果我猛击redis容器,我可以访问redis-cli。 docker-compose.yml看起来像这样 Dockerfile_redis 当我尝试使用此代码连接到Redis服务器时 它发出此警告 有谁知道如何将Redis容器连接到PHP容器? 问题答案: 你的问题 Docker Compose 为不同的服务创建了单独的dock
我使用docker撰写启动一个mysql da和一个springstart应用程序。 这是我的docker-compose.yml 这是我的application.properties 在这里,我创建了jdbi: 不管我怎么做,我都无法让集装箱在码头内相互交谈。如果我单独启动sql,我可以在主机中看到连接(在datagrip中)。如果我从容器中运行java程序,它会看到主机中的数据库。即使我运行d
我正在开发一个多容器的Docker应用程序,我想要一个容器使用Docker Compose向其他容器的API发出HTTP请求。我收到连接拒绝错误。 这两个容器都运行ASP.NET Core2.2。我使用的IDE是Visual Studio2017。我在用邮递员测试API调用。 DockerFiles Docker组合配置: 服务控制器操作: 卷曲 我还可以使用CURL来稳定与API RESTend
问题内容: TL; DR:为了允许一个容器通过自定义(非标准)端口使用另一个容器的服务,我必须如何更改以下内容? 我有一个非常普通的设置:Web应用程序的容器(Padrino [Ruby]),Postgres,Redis和一个排队框架(Sidekiq)。该Web应用程序带有其自定义的Dockerfile,其余服务来自标准映像(Postgres,Redis),或从Web应用程序装载数据(Sideki