#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