成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

理解 Docker 容器退出碼

系統 Linux
本文列出了最常見的退出碼,來回答兩個重要問題。來看一下吧。

為什么我的容器沒有運行?

回答這個問題需要知道 Docker 容器為什么退出,退出碼會提示容器停止運行的情況。

  • 這些退出碼是什么意思?
  • 導致該退出碼的動作是什么?

exit code:代表一個進程的返回碼,通過系統調用 exit_group 來觸發。在 POSIX 中,0 代表正常的返回碼,而 1-255 代表異常返回碼,不過一般錯誤碼都是 1。這里有一張附表 Appendix E. Exit Codes With Special Meanings

如何查看退出碼

方法一:查看 pod 中的容器退出碼

$ kubectl describe pod xxx

方法二:用 Docker 查看

$ docker ps --filter "status=exited"
$ docker inspect <container-id> --format='{{.State.ExitCode}}'

方法三:手動輸出

$ docker container run alpine sh -c "exit 1"
$ docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS
61c688005b3a alpine "sh -c 'exit 1'" About a minute ago Exited (1) 3 seconds ago

常見退出碼

Exit Code 0

  • 退出代碼0表示特定容器沒有附加前臺進程。
  • 該退出代碼是所有其他后續退出代碼的例外。
  • 這不一定意味著發生了不好的事情。如果開發人員想要在容器完成其工作后自動停止其容器,則使用此退出代碼。

如果你執行 docker run hello-world, 你會得到“Hello from docker!”,但查看容器的時候docker ps -a | grep hello-world,會發現狀態碼為 0

Exit Code 1

  • 程序錯誤,或者 Dockerfile 中引用不存在的文件,如 entrypoint 中引用了錯誤的包
  • 程序錯誤可以很簡單,例如 “除以0”,也可以很復雜,比如空引用或者其他程序 crash

Exit Code 137

  • 表明容器收到了 SIGKILL 信號,進程被殺掉,對應 kill -9
  • 引發 SIGKILL 的是 Docker Kill。這可以由用戶或由 Docker 守護程序來發起,手動執行:docker kill
  • 137 比較常見,如果 pod 中的 limit 資源設置較小,會運行內存不足導致 OOMKilled,此時 state 中的 "OOMKilled" 值為 true,你可以在系統的 dmesg 中看到 oom 日志

Exit Code 139

  • 表明容器收到了 SIGSEGV 信號,無效的內存引用,對應 kill -11
  • 一般是代碼有問題,或者 docker 的基礎鏡像有問題

Exit Code 143

  • 表明容器收到了 SIGTERM 信號,終端關閉,對應 kill -15
  • 一般對應 docker stop  命令
  • 有時 docker stop 也會導致 Exit Code 137。發生在與代碼無法處理 SIGTERM 的情況下,docker 進程等待十秒鐘然后發出 SIGKILL 強制退出。

不常用的一些 Exit Code

  • Exit Code 126: 權限問題或命令不可執行
  • Exit Code 127: Shell 腳本中可能出現錯字且字符無法識別的情況
  • Exit Code 1 或 255:因為很多程序員寫異常退出時習慣用 exit(1) 或 exit(-1),-1 會根據轉換規則轉成 255。這個一般是自定義 code,要看具體邏輯。

退出狀態碼的區間

  • 必須在 0-255 之間,0 表示正常退出
  • 外界將程序中斷退出,狀態碼在 129-255
  • 程序自身異常退出,狀態碼一般在 1-128
  • 假如寫代碼指定的退出狀態碼時不在 0-255 之間,例如: exit(-1),這時會自動做一個轉換,最終呈現的狀態碼還是會在 0-255 之間。我們把狀態碼記為 code,當指定的退出時狀態碼為負數,那么轉換公式如下:256 – (|code| % 256)
責任編輯:龐桂玉 來源: 奇妙的Linux世界
相關推薦

2021-07-15 09:47:20

Docker容器命令

2024-03-04 07:47:06

KubernetesUnix系統

2023-08-03 17:08:05

Linux退出碼

2024-03-08 15:29:01

DockerUIDGID

2019-07-24 08:49:36

Docker容器鏡像

2022-04-24 10:42:59

Kubernete容器網絡Linux

2022-03-10 08:24:17

Docker容器SaaS

2023-12-18 09:31:35

Go容器Linux

2019-07-16 14:44:52

DockerMySQL操作系統

2024-10-15 09:10:41

Docker容器iOS

2022-07-25 14:24:53

Docker容器安全

2022-07-18 11:13:07

容器安全Docker

2009-12-15 13:39:43

2021-04-09 15:55:07

掃碼支付二維碼數字人民幣

2019-12-16 12:11:53

Docker容器Kubernetes

2023-12-14 15:51:15

2019-07-01 09:33:58

DockerNginx操作系統

2016-08-23 09:16:46

Docker鏡像容器

2023-05-30 14:56:18

Docker開發容器

2014-11-20 10:55:47

Docker容器技術虛擬化
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲 欧美 日韩在线 | 欧美一级黄色片在线观看 | 亚洲欧美自拍偷拍视频 | 国产精品美女久久久久久久久久久 | 国产精品毛片一区二区在线看 | 午夜av电影院 | 热re99久久精品国99热观看 | 久久精品99久久 | 日韩欧美网 | 欧美成人一区二区三区 | 久久久久久久国产精品 | 国产精品久久久久久久久免费桃花 | 青青久久| 女生羞羞网站 | www.欧美.com | 在线中文一区 | 国产精品日产欧美久久久久 | 视频一二区 | 久久久久国产精品一区二区 | 超碰97免费观看 | 日韩综合在线 | 国产乱码精品一区二区三区中文 | 日本成人免费观看 | 草草影院ccyy | 伊人色综合久久天天五月婷 | 亚洲高清在线观看 | 国产一区二区三区在线免费 | 国产高清在线精品一区二区三区 | 日本中文在线 | 国产在线一区二区三区 | 欧美日韩亚洲一区 | 国产免费又黄又爽又刺激蜜月al | 国产精品高潮呻吟久久 | 久久亚洲天堂 | 久久精品中文字幕 | 欧美a区| 国产专区视频 | 亚洲精品视频在线观看视频 | 色爱综合| 国产视频一区二区三区四区五区 | 久久久久黄色 |