17

コンテナが自動的にクラッシュした場合にコンテナを再起動したい。これを行う方法がわかりません。Elasticsearch、redis、nats、および mongo を含むスクリプト docker-compose-deps.yml があります。ターミナルでこれを実行して、これをセットアップします: docker-compose -f docker-compose-deps.yml up -d. この後、以下を実行してコンテナをセットアップしましたdocker-compose up -d。これらのコンテナがクラッシュした場合に再起動する方法はありますか? docker には再起動機能が組み込まれていることに気付きましたが、これを実装する方法がわかりません。

いくつかのフィードバックの後、私は自分のファイルと自分のファイルに追加restart: alwaysdocker-composeましたdocker-compose-deps.yml。これは正しく見えますか?それとも、これは常に再起動を実装する方法ですか?

docker-compose サンプル

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 サンプル

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
4

2 に答える 2

12

Compose を使用している場合は、docker run コマンドに存在するものと同様の再起動フラグがあるため、それを使用できます。この部分に関するドキュメントへのリンクは次のとおりです - https://docs.docker.com/compose/compose-file/

展開する場合、展開先によって異なります。kubernetes、mesos、ECS などのほとんどのコンテナー クラスターには、コンテナーを自動再起動するために使用できる構成があります。これらのツールを使用しない場合は、おそらくコンテナーを手動で開始しているため、ローカルで行う場合と同じように再起動フラグを使用できます。

于 2016-10-18T13:21:56.473 に答える