我在Windows Home Edition上使用docker工具带。我正在尝试使用docker-
compose将Node与Redis一起使用,当我使用来运行映像docker-compose up
(在同一源目录中)时,它运行良好,但是当我尝试使用来运行docker run -it myusername/myimage
Node时,我的Node应用程序不是’无法连接到Redis。
抛出:
Error: Redis connection to redis-server:6379 failed - getaddrinfo ENOTFOUND redis-server
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:60:26) {
errno: 'ENOTFOUND',
code: 'ENOTFOUND',
syscall: 'getaddrinfo',
hostname: 'redis-server'
}
我相信这是因为我的节点应用程序无法找到Redis,即使当我使用该应用程序正在运行时docker-compose up
,我也无法在相应的端口(即localhost:3000)上访问它。
这是我的docker-compose.yml
version: '3'
services:
my_api:
build: .
ports:
- "3000:3000"
image: my_username/myimage
links:
- redis-server:redis-server
redis-server:
image: "redis:alpine"
我面临两个问题,我相信它们都是相互关联的。
编辑
这可能是由于Windows Home Edition的虚拟化问题造成的吗?因为它不使用Hyper
V,所以我只是尝试使用docker,所以我对此不太了解,但是David的回答很有道理,可能是由于各种网络,我需要连接到有效的网桥或者。
这就是我做的事 docker network ls
NETWORK ID NAME DRIVER SCOPE
5802daa117b1 bridge bridge local
7329d018df1b collect_api_mod_default bridge local
5491bfee5551 host host local
be1353789426 none null local
当您在同一docker- compose.yml
文件中运行整个堆栈时,Compose会自动为您创建一个Docker网络,这将使跨服务DNS请求正常工作。
如果您尝试手动创建docker run
一个容器,并且根本不指定任何--net
选项,那么您会得到Docker称为默认桥接网络的东西,这显然没什么用处。您需要确保您的容器与Redis服务器连接到相同的Docker内部网络。
您可以运行docker network ls
以获取Docker网络列表。鉴于该docker- compose.yml
文件,可能会有一个名为的文件source_directory_default
。使用该名称并将其传递给您的docker run
命令(在图像名称之前)
docker run --net source_directory_default -p 3000:3000 my_username/my_api
问题内容: 我在Mac OS 10.8.5上安装了docker-machine 0.1.0和docker-compose 1.1.0。 Docker-machine正常运行,并且能够通过docker-machine ssh连接。 但是无法从docker-compose连接。 无法通过http + unix://var/run/docker.sock连接到Docker守护程序-它正在运行吗? 如果它
问题内容: 我收到一条错误消息,提示我无法连接到Docker守护程序。我调查了其他人遇到类似问题的答案,但没有帮助。我正在运行Ubuntu 15.10版本。我将尝试提供我所有的信息。 Docker版本 Docker-Compose版本 如果我尝试停止或启动服务,就会发生这种情况。 如果我跑步 任何帮助将不胜感激。让我知道您是否需要更多信息。 问题答案: 我发现了这个问题,似乎可以解决我的问题。 G
我在Mac OS 10.8.5上安装了docker-machine 0.1.0和docker-compose 1.1.0。 docker-machine运行正常,并且能够通过docker-machine SSH进行连接。 但无法从Docker-Compose连接。 无法连接到HTTP+UNIX上的Docker后台进程://var/run/Docker.sock-它正在运行吗? 如果它位于非标准位置
您似乎试图通过本机驱动程序端口上的HTTP访问MongoDB。 而且日志显示我的mongodb是健康的。我想是我试图通过浏览器访问的最后一行。 2017-01-25T21:11:13.509+0000 I JOURNAL[initandlisten]JOURNAL dir=/data/db/Journal2017-01-25T21:11:13.509+0000 I JOURNAL[initandl
我试图运行在通过包含文件()在虚拟机中,但我无法连接到,并且在尝试连接失败时收到的消息如下所示: 如果您注意到,docker能够连接到docker compose文件中提到的其他服务,其中一个是前两行显示的。在docker compose文件中调用kibana的命令如下: 如果我做了,它会给我以下信息: 在这里发布这个问题之前,我在google上广泛搜索了这个问题,并尝试了人们对这个问题的各种建议
我正在运行安装了以下docker软件的Ubuntu: