Я использую Redis-сервер внутри док-контейнера.Он работает на порту 127.0.0.1 6379.
В контейнере: Я могу подключиться к серверу redis, когда он находится внутри контейнера, и обрабатывать команды без проблем.
С хоста: Когда я делаю redis-cli с хоста на контейнер с помощью монитора redis-cli, выдает ошибку: Сервер закрыл соединение.
Если я простоdo redis-cli
, он выдает подсказку;
127.0.0.1:6379>
127.0.0.1:6379> set www yee
Error: Server closed the connection
Кажется, что у докера выставлен правильный порт, и отображение порта док-станции работает.Ошибка не в установлении соединения, но соединение прерывается вскоре после этого.
Из другого контейнера в той же сети докера (моста):
redis.on('error', function(err) {
logger.error('Redis error: ' + err);
} );
Redis error: Redis connection to 172.18.0.2:6379 failed - connect ECONNREFUSED 172.18.0.2:6379
Мой redis.conf
файл имеет protected-mode no
.
Запись в журнал настроена на отладку, но в журнале также нет информации, показывающей, что соединение было предпринято и отклонено.
Клиент Redisповторяет попытку по таймауту, но каждый раз, когда он получает соединение отказано.Я попытался использовать как имя контейнера (в качестве имени хоста), так и IP-адрес контейнера в сети Docker, и в обоих случаях результат был идентичным.
docker network create redisnet
docker run --name redis -p 6379:6379 -d --net "redisnet" redis-server
docker run --name apiserver -p 81:8080 --net "redisnet" -d api-server
If I try to ping it from another container on the same net:
docker run -it --rm --net redisnet redis redis-cli -h redis ping
Could not connect to redis at redis:6379: Connection refused
Если есть какие-либо советы по отладке, это было бы оченьполезно;