Я использую инструментальный пояс для докеров на Windows Home Edition.Я пытаюсь использовать Node с Redis с помощью docker-compose, он работает хорошо, когда я запускаю образ, используя docker-compose up
(в той же директории с исходным кодом), но когда я пытаюсь запустить его, используя docker run -it myusername/myimage
, мойПриложение Node не может подключиться к Redis.
throwing:
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 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