2015-05-30 10 views
8

mój Redis pojemnik jest zdefiniowany jako on standardowego obrazu w moim docker_compose.ymlDocker-komponować, w każdym razie, aby określić plik redis.conf?

redis: 
    image: redis 
    ports: 
    - "6379" 

Myślę, że przy użyciu standardowych ustawień jak wiązanie z Redis na localhost muszę powiązać go z 0.0.0.0, to mimo to dodać lokalny plik redis.conf, aby zmienić powiązanie i umożliwić modułowi dokowania?

dzięki za jakąkolwiek sztuczkę ...

Odpowiedz

20

Tak. Wystarczy zamontować redis.conf zamiast domyślnego o objętości:

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

Alternatywnie, należy utworzyć nowy obraz na podstawie obrazu Redis z pliku conf skopiowane w całości instrukcje na:. https://registry.hub.docker.com/_/redis/

Jednak Redis image domyślnie wiąże się z 0.0.0.0. Aby uzyskać do niego dostęp z hosta, musisz użyć portu, który Docker zmapował do hosta, który znajdziesz za pomocą polecenia docker ps lub docker port, możesz uzyskać do niego dostęp pod adresem localhost:32678, gdzie 32678 jest zmapowanym portem. Alternatywnie, można określić konkretny port, do mapowania w docker-compose.yml.

Jak wydaje się być nowym Döcker, może to wszystko zrobić nieco więcej sensu, jeśli zaczniesz stosując surowe Döcker poleceń zamiast zaczynając Compose.

+1

Dzięki dużo ... Byłem thru poleceń Döcker AW przed ... I” m teraz nauka Compose ... postaram obie propozycje ... – erwin

+0

starałem się podążać za rekomendację. Ale Redis nie czyta mojego pliku konfiguracyjnego i wydaje się po prostu załadować swój domyślny conf; na przykład, mam wymagane hasło wewnątrz pliku conf, ale gdy uruchomiona jest instancja, nie ma wymogu hasła. – Kousha

+0

@Kousha które powinny działać, otworzyć oddzielny pytanie, czy nie. Powinno być proste debugowanie, po prostu wykonanie w kontenerze. –

11

Stare pytanie, ale jeśli ktoś jeszcze chce zrobić, jest to możliwe z tomów i polecenia:

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

Czy to działałoby, gdyby kontener był na innym hoście? woluminy montują katalogi _on_the_host_, prawda? –

+0

Warto zauważyć, że konfiguracja redis domyślnie zezwala tylko na połączenia z 127.0.0.1, więc jeśli chcesz połączyć się z hostem w celu testowania, musisz dostosować opcje. –

+0

Określanie odwzorowania ścieżki absolutnej w 'Woluminie' jest bezpieczniejsze, tak jak poniżej:' woluminy: - $ {PWD} /redis/redis.conf:/usr/local/etc/redis/redis.conf' –

Powiązane problemy