web-dev-qa-db-ja.com

Docker Run終了コードの信頼できるリストとは何ですか?

これは尋ねられましたが、 Dockerドキュメント のどこにも終了コード(終了ステータスとも呼ばれます)の信頼できるリストが見つからない場合はおApびします。驚いた!一貫性についての提案はありますが、docker.comにはドキュメントがありません。

終了コードがどこにあるか誰にもわかりますか?

39
jeesty

Docker> = 1.10については、標準の chroot終了コード に従う this PR を参照してください。

  • 125docker run自体が失敗する
  • 126:含まれているコマンドを呼び出すことはできません
  • 127:含まれるコマンドが見つからない場合
  • 128 + n致命的なエラー信号n
    • 130 = (128+2) Control-Cで終了したコンテナ
    • 137 = (128+9)コンテナはSIGKILLを受け取りました
    • 143 = (128+15)コンテナはSIGTERMを受け取りました

完全なリストについては、signalのmanページを確認してください(cmdタイプman signalまたはオンラインで確認します(例: 信号 )。

現在のバージョンの詳細については、 Dockerドキュメント を確認してください。

58
Tombart

通常、プロセスの終了ステータスであるため、アプリケーションに依存します。

$ docker run debian sh -c "exit 5;"
$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
7fcc37778df0        debian              "sh -c 'exit 5;'"   4 seconds ago       Exited (5) 3 seconds ago                       reverent_einstein   

ただし、特定の場合にDocker自体が終了コードを返すことがあります。

  • Dockerデーモンにエラーがある場合は125(たとえば、間違ったフラグが提供されます)
  • 126コンテナコマンドを呼び出せない場合(たとえば、ファイルが実行可能でない場合)
  • コンテナコマンドが見つからない場合は127(例:バイナリへの間違ったパス)

https://docs.docker.com/engine/reference/run/#exit-status

12
Adrian Mouat

Docker終了コードは Dockerの公式ドキュメント に詳しく記載されています。