2015-05-30 2 views
8

мой Redis контейнер определяется как он стандартный образ в моей docker_compose.ymlDocker-compose, так или иначе, чтобы указать файл redis.conf?

redis: 
    image: redis 
    ports: 
    - "6379" 

Я предполагаю, что это, используя стандартные настройки, как связывание с Redis на локальном хосте мне нужно, чтобы связать его с 0.0.0.0, есть в любом случае добавить локальный файл redis.conf, чтобы изменить привязку, и пусть docker-compose знает это?

благодарит для любого трюка ...

ответ

20

Да. Просто подключаете ваш redis.conf по умолчанию с объемом:

redis: 
    image: redis 
    volumes: 
    - ./redis.conf:/usr/local/etc/redis/redis.conf 
    ports: 
    - "6379" 

С другой стороны, создать новый образ на основе изображения Redis с вашим файлом конф скопирована в Полные инструкции по адресу:. https://registry.hub.docker.com/_/redis/

Однако, Redis изображение по умолчанию привязывается к 0.0.0.0. Чтобы получить доступ к нему с хоста, вам необходимо использовать порт, который Docker сопоставил с хостом для вас, который вы найдете с помощью команды docker ps или docker port, затем вы можете получить к ней доступ по адресу localhost:32678, где 32678 - это сопоставленный порт. Кроме того, вы можете указать конкретный порт для сопоставления в docker-compose.yml.

Как вы, кажется, новичок в Docker, все это может иметь смысл, если вы начнете с использования сырых команд Docker, а не начиная с Compose.

+1

спасибо большое ... Я был через команды Docker Aw раньше ... Я m теперь изучаю Compose ... Я попробую оба предложения ... – erwin

+0

Я старался следовать вашей рекомендации. Но Redis не читает мой файл конфигурации и, кажется, просто загружает свой собственный conf conf по умолчанию; например, я потребовал пароль внутри файла conf, но когда экземпляр запускается, пароля не требуется. – Kousha

+0

@ Kousha, который должен работать, откройте отдельный вопрос, если это не так. Это должно быть просто отлаживать, хотя просто вставляя в контейнер. –

11

Старый вопрос, но если кто-то еще хочет сделать это, можно с объемами и командой:

command: redis-server /usr/local/etc/redis/redis.conf 
volumes: 
- ./redis/redis.conf:/usr/local/etc/redis/redis.conf 
+0

Будет ли это работать, если контейнер был на другом хосте? тома монтирует каталоги _on_the_host_, правильно? –

+0

Стоит отметить, что конфигурация redis позволяет использовать соединения только с 127.0.0.1 по умолчанию, поэтому, если вы хотите подключиться к хосту для целей тестирования, вам нужно настроить параметры. –

+0

Указать абсолютное сопоставление пути в «Томах» более безопасно, например: 'тома: - $ {PWD} /redis/redis.conf:/usr/local/etc/redis/redis.conf' –

Смежные вопросы