2015-05-30 9 views
8

mein redis Behälter, wie er Standard Bild in meinem docker_compose.ymlDocker-komponieren, um eine redis.conf-Datei anzugeben?

redis: 
    image: redis 
    ports: 
    - "6379" 

Ich denke, es wird mit den Standardeinstellungen wie die Bindung an Redis bei localhost definiert ist, ich es 0.0.0.0 binden müssen, ist es trotzdem Fügen Sie eine lokale redis.conf-Datei hinzu, um die Bindung zu ändern, und docker-compose weiß das?

danke für irgendeinen Trick ...

Antwort

20

Ja. Einfach montieren Ihre redis.conf über den Standard mit einem Volumen:

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

Alternativ können Sie ein neues Bild auf der Basis des redis Bild mit Ihrer conf-Datei erstellen kopiert in Vollständige Anweisungen sind unter:. https://registry.hub.docker.com/_/redis/

jedoch die redis Bild bindet standardmäßig an 0.0.0.0. Um vom Host aus darauf zugreifen zu können, müssen Sie den Port verwenden, den Docker dem Host zugeordnet hat, den Sie mithilfe des Befehls docker ps oder finden. Sie können dann unter localhost:32678 darauf zugreifen, wobei 32678 der zugeordnete Port ist. Alternativ können Sie einen spezifischen Port für die Zuordnung in docker-compose.yml angeben.

Da Sie scheinbar neu in Docker sind, könnte dies ein wenig sinnvoller sein, wenn Sie mit rohen Docker-Befehlen beginnen und nicht mit Compose beginnen.

+1

vielen Dank ... Ich habe vorher gewesen durch Befehle Docker aw ... I‘ m jetzt lernen Compose ... Ich werde beide Vorschläge versuchen ... – erwin

+0

Ich habe versucht, Ihrer Empfehlung zu folgen. Aber Redis liest meine Konfigurationsdatei nicht und scheint nur sein eigenes Standardconf zu laden; Zum Beispiel habe ich ein Passwort in der Conf-Datei benötigt, aber wenn die Instanz ausgeführt wird, ist kein Passwort erforderlich. – Kousha

+0

@Kousha das sollte funktionieren, öffnen Sie eine separate Frage, wenn dies nicht der Fall ist. Es sollte einfach zu debuggen sein, indem Sie einfach in den Container ausführen. –

11

alte Frage, aber wenn jemand noch das tun will, ist es möglich, mit einem Volumen und Befehl:

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

Würde das funktionieren, wenn sich der Container auf einem anderen Host befindet? Volumes mountet Verzeichnisse _on_the_host_, oder? –

+0

Beachten Sie, dass die redis-Konfiguration standardmäßig nur Verbindungen von 127.0.0.1 zulässt. Wenn Sie also eine Verbindung vom Host zu Testzwecken herstellen möchten, müssen Sie die Optionen optimieren. –

+0

Angeben einer absoluten Pfadzuordnung in 'Volumes' ist sicherer, wie folgt:' volumes: - $ {PWD} /redis/redis.conf:/usr/local/etc/redisis/redis.conf' –

Verwandte Themen