我确实在docker上构建了orientDB和appserver。他们也在跑步。这是docker上的容器列表:
core@localhost ~ $ docker ps
CONTAINER ID IMAGE COMMAND CREATED
STATUS PORTS
NAMES
01abef0204a7 fxrialab/appserver:latest /usr/sbin/httpd -D F 30 minute
s ago Up 30 minutes 0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp
appserver
f6d0631bb092 fxrialab/orient:latest /bin/sh -c cd /opt/o 30 minute
s ago Up 30 minutes 0.0.0.0:2424->2424/tcp, 0.0.0.0:2480->2480/tcp
appserver/db,orient
ebc1386250b9 fxrialab/data:latest /usr/sbin/sshd -D 30 minute
s ago Up 30 minutes 0.0.0.0:2200->22/tcp
data
我也在orientDB上创建了数据库。我认为东方工作得很好。然而,当我登录到我的网站。我得到错误"连接拒绝",像这样:
Socket错误#111:Connection refused
•供应商/OrientDB/OrientDB.php: 254OrientDBSocket -> __construct (' localhost ', ' 2424 ', 30)
•apps/models/DB.php:11 OrientDB->__construct('localhost','2424')
我不知道是什么原因,虽然我做了测试很好在本地当我启用server.bat文件。啊,我用的是orientdb-1.7
localhost是IP地址127.0.0.1的同义词
你的绑定是为0.0.0.0
我不熟悉OrientDB,但我相信你面临的是端口访问问题(服务器配置),而不是软件问题(在这种情况下,软件是OrientDB)。大多数服务器被配置为阻止所有端口,除非出于安全原因特别允许,因此没有人可以通过这些被阻止的端口连接到服务器。
因此,可能发生的情况是,您的本地服务器可以使用这些端口,而远程服务器是安全的,因此会阻止连接。
Docker运行一个虚拟机,每个容器有单独的网络接口。因此,如果您的应用服务器连接到本地主机,它将看不到orientdb.
您需要更新您的配置以查找链接的适当环境变量(参见http://docs.docker.com/userguide/dockerlinks/),或者仅使用db
主机。Docker为每个链接的容器注入一个主机名到/etc/hosts
我已经找到了这个问题的原因,因为im配置主机连接是错误的。它不是localhost
,因为docker使用自己的内部IP。在ssh类型docker inspect orient
,然后使用全局变量配置访问IP &港口。