私は、このようなドッキングウィンドウ-compose.ymldocker-composeで `restart:on-failure`のエラーを通知する方法は?
にserver:
build: server
restart: on-failure
を用意し、私はコンテナを再起動するコンテナ内のシェルスクリプトからエラーを送りたいです。 どうすればいいですか?
私は、このようなドッキングウィンドウ-compose.ymldocker-composeで `restart:on-failure`のエラーを通知する方法は?
にserver:
build: server
restart: on-failure
を用意し、私はコンテナを再起動するコンテナ内のシェルスクリプトからエラーを送りたいです。 どうすればいいですか?
コンテナはVMではなく、プロセス(考え方の一環)です。したがって、コンテナ内でのOSの再起動は意味をなさないため、不可能です。コンテナを殺す、停止する、またはコンテナを再起動する。
docker stop CONTAINER
docker kill CONTAINER
docker restart CONTAINER
質問の文脈では、コンテナの仕様によっては、問題のコンテナを再起動することが最も効果的です。
あなたのシナリオに最適な解決策は、コンテナ内に/var/run/docker.sock
をマウントし、Docker APIを使用してコンテナを単独で再起動することです。
hereに役立つライブラリとSDKのリストが表示されます。使用するには、コンテナ内に特定のSDKをインストールしてください。
希望します。
ありがとうIman、 私はそれを試して、内部のコンテナからAPIを呼び出しました。 '' ' curl --unix-socket /var/run/docker.sock -X POST http:/v1.30/containers/xxxxx/restart?t = 5 ' '' エラーが発生しました。 '' ' curl:オプション--unix-socket:が不明です ' '' – Harry
問題は '-v'オプションを使用してマウントする必要があることです。例えば 'docker run sth -v /var/run/docker.sock:/ var/run/docker.sock' @ハリー。 – Iman
私はdocker-composeを使用しています そして、 ' - /private/var/run/docker.sock:/ var/run/docker.sock'をvolumesディレクティブに追加しました。 – Harry
デフォルトではコンテナが再起動しますが、どういう意味ですか? – Iman
このコンテナでは、何かを検出するためにシェルスクリプトが実行されています。 そしてシェルスクリプトでサーバーコンテナ自体を再起動します。 – Harry
コンテナを単独で再起動することを意味しますか? – Iman