Повторный просмотр в Docker и Redis в Docker: не удалось подключиться: ошибка 99 при подключении к localhost: 6379. Не удается назначить запрошенный адрес

#docker #redis #docker-compose #docker-container #redisinsights

#docker #redis #docker-compose #докер-контейнер #повторный просмотр

Вопрос:

На основе этого руководства https://www.youtube.com/watch?v=XrFeRwJjWHI , Я попробовал запустить Redis в Docker.

Файл docker-compose.yml

 version: "3.8"

services:
  redis:
    image: redis
    volumes:
      - ./data:/data
    ports:
      - 6379:6379
  
 docker pull redis
docker-compose up
docker-compose up -d
docker container ls
telnet localhost 6379
  

Telnet, введите PING , затем нажмите клавишу ввода (вы не увидите текст), затем увидите результат: PONG . Введите quit для выхода.

 Microsoft Windows [Version 10.0.19041.508]
(c) 2020 Microsoft Corporation. All rights reserved.

D:docker>docker-compose stop redis
Stopping docker_redis_1 ... done

D:docker>
  

Посмотрите, что запущено

 docker container ls
  

Вы увидите, что docker redis был остановлен.

 docker image prune -a
docker-compose up
  

Повторный просмотр в Docker

 docker run -v redisinsight:/db -p 8001:8001 redislabs/redisinsight:latest
  

Подождите около 6 минут (при скорости Интернета в 22:30) для загрузки, распаковки, установки, запуска.

перейдите к: http://localhost:8001 / (автоматическое открытие веб-браузера). Проверка работоспособности для повторного просмотра http://localhost:8001/healthcheck / все в порядке.

введите описание изображения здесь

введите описание изображения здесь

введите описание изображения здесь

(Я также отметил здесь https://donhuvy.github.io/redis/docker/2020/10/10/run-redis-on-docker .html )

Как подключить RedisInsight к Redis без ошибок?

Обновление: это мой хост-файл, похоже, здесь проблема (IP 127.0.0.1 для Kubernetes, на самом деле я не знаю о Kubernetes, я изучаю его.), Но я не знаю, как это исправить.

 # Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within DNS itself.
#   127.0.0.1       localhost
#   ::1             localhost

127.0.0.1    www.techsmith.com
127.0.0.1    activation.cloud.techsmith.com
127.0.0.1    oscount.techsmith.com
127.0.0.1    updater.techsmith.com
127.0.0.1    camtasiatudi.techsmith.com
127.0.0.1    tsccloud.cloudapp.net
127.0.0.1    assets.cloud.techsmith.com

# Added by Docker Desktop
192.168.1.44 host.docker.internal
192.168.1.44 gateway.docker.internal
# To allow the same kube context to work on the host and the container:
127.0.0.1 kubernetes.docker.internal
# End of section

  

Комментарии:

1. Эти контейнеры работают в одной сети? Попробуйте перечислить сети и контейнеры, чтобы узнать, находятся ли они в одной сети

2. Как составить список сетей и контейнеров?

3. Вы получили свой ответ?

4. Я не уверен.

5. вы можете сделать следующее, чтобы перечислить сети с помощью docker: docker network ls . чтобы проверить сеть вашего контейнера, вы можете сделать следующее: $ docker inspect c1 -f "{{json .NetworkSettings.Networks }}" c1 == имя контейнера.

Ответ №1:

Используя эту настройку в docker-compose.yml

 version: '3.7'

services:
  redis:
    image: 'redis:6.0.6'
    ports:
      - '127.0.0.1:6379:6379/tcp'
    volumes:
      - 'redis_data:/data:rw'
    healthcheck:
      test: redis-cli ping
      interval: 3s
      timeout: 5s
      retries: 5

  redisinsight:
    image: 'redislabs/redisinsight:latest'
    ports:
      - '127.0.0.1:8001:8001'
  

вы можете получить доступ к redis через

введите описание изображения здесь

Ответ №2:

RedisInsight пытается подключиться к локальному хосту контейнера. Попробуйте ввести 127.0.0.1 в Host поле.

Если файловый хост был изменен, как указано в обновленной информации, используйте 192.168.1.44 .

Комментарии:

1. Это все еще ошибка user-images.githubusercontent.com/1328316 /… . Надеюсь, вы сможете мне помочь.

2. Это мой файл хоста gist.github.com/donhuvy/… похоже, проблема с этим IP-адресом. Дайте мне знать, как исправить.

3. @DoNhuVy в соответствии с вашим файлом hosts искомый IP-адрес: 192.168.1.44

Ответ №3:

Чтобы ваши контейнеры могли обращаться друг к другу, вы должны сначала подключить их к одной сети.

 docker network create redis
docker network connect redis elastic_diffie
docker network connect redis docker_redis_1
  

После этого откройте пользовательский интерфейс RedisInsight и напишите docker_redis_1 на свой хост, оставив порт прежним. Вы должны иметь возможность подключиться к вашему контейнеру redis.

Ответ №4:

Поскольку вы не указали какую-либо сеть для контейнеров, они подключены к мостовой сети по умолчанию. Узнать больше

Чтобы получить IP-адрес контейнера

Введите свой терминал

 # Check container network IP address

docker container inspect -f "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}" <container name>

  

Используйте IP-адрес в: http://localhost:8001 / (Повторный обзор).

или

(Не рекомендуется) Введите IP address ваш ХОСТ-компьютер, чтобы решить проблему

Используйте ipconfig или ifconfig на основе вашей ОС, чтобы получить ваш IP

Ответ №5:

вы должны указать свой Ip с помощью ipconfig вместо localhost