【发布时间】:2015-12-07 10:44:26
【问题描述】:
在 OS X 10.11.1 上运行 docker-machine 0.5.0 版、Docker 1.9.0 版。
我有自己的Couchbase image(不是官方的)。在entrypoint script 内部,我正在运行一些curl 命令来配置Couchbase 服务器并加载示例数据。问题是,curl 失败并显示错误消息Failed to connect to localhost port 8091: Connection refused。
我试过127.0.0.1、0.0.0.0、localhost,都没有成功。 netstat 表明localhost 上的端口8091 正在侦听。如果我稍后使用docker exec 登录到服务器并运行相同的curl 命令,这些都可以!我错过了什么?
错误:
couchbase4 | % Total % Received % Xferd Average Speed Time Time Time Current
couchbase4 | Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0curl: (7) Failed to connect to localhost port 8091: Connection refused
netstat 输出:
root@cd4d3eb00666:/opt/couchbase/var/lib# netstat -lntu
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:21100 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:21101 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:9998 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:4369 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:8091 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:8092 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:41125 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:11209 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:11210 0.0.0.0:* LISTEN
tcp6 0 0 :::11209 :::* LISTEN
tcp6 0 0 :::11210 :::* LISTEN
【问题讨论】:
-
能否请您发布您的入口点脚本?
-
@ReneM。已经在那了。文本“入口点脚本”是一个超链接。
-
等一下!你的入口点脚本应该启动 couchdb,所以当你的 curl 命令在那里失败但后来可以工作时。我认为您应该考虑入口点脚本中命令的顺序。在尝试使用 curl 连接之前先启动 couchdb ;)
-
@ReneM。你错过了脚本的第一行?
$CB_HOME/etc/couchbase_init.d restart -
您在容器中使用 initd 和类似的东西运行完整的 linux?为什么?查找官方图像,只运行需要的,通过你的入口点脚本手动运行你的服务。这是我的建议
标签: docker couchbase boot2docker docker-machine