2016-10-18 3 views
3

Ich möchte einen Container neu starten, wenn es automatisch abstürzt. Ich bin mir nicht sicher, wie ich das machen soll. Ich habe ein Skript docker-compose-deps.yml, das elasticsearch, redis, nats und mongo hat. Ich führe dies im Terminal aus, um dies einzurichten: docker-compose -f docker-compose-deps.yml up -d. Danach rüste ich meine Container auf: docker-compose up -d. Gibt es eine Möglichkeit, diese Container neu zu starten, wenn sie abstürzen? Ich habe festgestellt, dass Docker einen Neustart hat, aber ich weiß nicht, wie das zu implementieren ist.Neustart Docker Containers, wenn sie automatisch abstürzen

Nach einer Rückmeldung habe ich restart: always zu meiner docker-compose Datei und meine docker-compose-deps.yml Datei hinzugefügt. Sieht das korrekt aus? Oder würden Sie den Neustart immer so durchführen?

Docker-compose Probe

myproject-server: 
    build: "../myproject-server" 
    dockerfile: Dockerfile-dev 
    restart: always 
    ports: 
    - 5880:5880 
    - 6971:6971 
    volumes: 
    - "../myproject-server/src:/src" 
    working_dir: "/src" 
    external_links: 
    - nats 
    - mongo 
- elasticsearch 
- redis 
myproject-associate: 
    build: "../myproject-associate" 
    dockerfile: Dockerfile-dev 
    restart: always 
    ports: 
    - 5870:5870 
    volumes: 
    - "../myproject-associate/src:/src" 
    working_dir: "/src" 
    external_links: 
    - nats 
    - mongo 
    - elasticsearch 
    - redis 

Docker-Compose-deps.yml Probe

nats: 
    image: nats 
    container_name: nats 
    restart: always 
    ports: 
    - 4222:4222 
mongo: 
    image: mongo 
    container_name: mongo 
    restart: always 
    volumes: 
    - "./data:/data" 
    ports: 
    - 27017:27017 
+0

Es sieht gut aus für mich, aber der beste Weg, es zu testen, ist absichtlich einen der Container ausfallen und sehen, ob es wieder hochspringt –

+0

Okay, großartig! Danke für deinen Beitrag! – daveskylark

Antwort

2

Wenn Sie komponieren verwenden, hat es einen Neustart-Flag, die zu dem einen analog bestehenden in der docker run-Befehl, damit Sie das verwenden können. Hier finden Sie einen Link zur Dokumentation zu diesem Teil - https://docs.docker.com/compose/compose-file/

Bei der Bereitstellung hängt es davon ab, wo Sie bereitstellen. Die meisten Container-Cluster wie Kubernetes, Mesos oder ECS verfügen über eine Konfiguration, mit der Sie Ihre Container automatisch neu starten können. Wenn Sie keines dieser Tools verwenden, starten Sie Ihre Container wahrscheinlich manuell und können dann das Restart-Flag genauso verwenden, wie Sie es lokal tun würden.

+0

Ich habe die Änderungen an meinen beiden Dateien vorgenommen und hinzugefügt, damit die Änderungen sichtbar sind. Sieht das korrekt aus? – daveskylark

Verwandte Themen