2016-10-18 5 views
3

自動的にクラッシュした場合、コンテナを再起動したい。私はこれをどうやってやっていくのか分かりません。私はelasticsearch、redis、nats、mongoを持つスクリプトdocker-compose-deps.ymlを持っています。私はこれを設定するために端末でこれを実行します:docker-compose -f docker-compose-deps.yml up -d。その後、私はコンテナをdocker-compose up -dを実行して設定しました。クラッシュした場合、これらのコンテナを再起動する方法はありますか?私はドッカーに再起動が組み込まれていることに気付きましたが、これを実装する方法はわかりません。Docker Containersが自動的にクラッシュするときに再起動する

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

ドッキングウィンドウ-構成サンプル

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 

ドッキングウィンドウ-構成-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 
+0

それは私には見えますが、テストする最良の方法は意図的にコンテナの1つを失敗させて、それが戻ってくるかどうかを確認することです。 –

+0

大丈夫です!あなたのご意見ありがとうございます! – daveskylark

答えて

2

あなたが作曲使用している場合、それはに既存のものと類似して再起動フラグを持っていますドッカーはコマンドを実行するので、それを使うことができます。ここには、この部分に関するドキュメントへのリンクがあります。 https://docs.docker.com/compose/compose-file/

展開するときは、どこに展開するかによって異なります。 kubernetes、mesos、ECSのようなほとんどのコンテナクラスタには、コンテナを自動再起動するための設定があります。これらのツールを使用しない場合は、コンテナを手動で起動している可能性があります。その場合は、ローカルの場合と同様に再起動フラグを使用してください。

+0

私は2つのファイルに変更を加え、変更を見られるように追加しました。これは正しいか? – daveskylark

関連する問題