那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Docker容器退出碼是什么意思?導致該退出碼的動作是什么

馬哥Linux運維 ? 來源:徐亞松(占洋) ? 作者:徐亞松(占洋) ? 2022-08-02 09:55 ? 次閱讀

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

回答這個問題需要知道 Docker 容器為什么退出,退出碼會提示容器停止運行的情況。本文列出了最常見的退出碼,來回答兩個重要問題:

這些退出碼是什么意思?

導致該退出碼的動作是什么?

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

如何查看退出碼

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

$kubectldescribepodxxx

74a515f8-11a5-11ed-ba43-dac502259ad0.jpg

方法二:用 Docker 查看

$ dockerps--filter"status=exited"
$ dockerinspect--format='{{.State.ExitCode}}'

方法三:手動輸出

$ dockercontainerrunalpinesh-c"exit1"

$dockercontainerls-a

CONTAINERIDIMAGECOMMANDCREATEDSTATUS
61c688005b3aalpine"sh-c'exit1'"AboutaminuteagoExited(1)3secondsago

常見退出碼

Exit Code 0

退出代碼0表示特定容器沒有附加前臺進程。

該退出代碼是所有其他后續退出代碼的例外。

這不一定意味著發生了不好的事情。如果開發人員想要在容器完成其工作后自動停止其容器,則使用此退出代碼。

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

74b736d4-11a5-11ed-ba43-dac502259ad0.jpg

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)



審核編輯:劉清


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Docker
    +關注

    關注

    0

    文章

    492

    瀏覽量

    11968
  • docker容器
    +關注

    關注

    0

    文章

    30

    瀏覽量

    3348
收藏 人收藏

    評論

    相關推薦

    設備能識別哪些類型的 工業二維掃描設備有什么推薦產品

    在當今智能制造與數字化轉型的浪潮中,掃設備作為信息識別與采集的關鍵工具,其重要性日益凸顯。從簡單的條形碼到復雜多變的二維,再到專為工業環境設計的工業二維,掃技術的應用范圍不斷拓
    的頭像 發表于 12-18 15:13 ?238次閱讀
    掃<b class='flag-5'>碼</b>設備能識別哪些類型的<b class='flag-5'>碼</b> 工業二維<b class='flag-5'>碼</b>掃描設備有什么推薦產品

    如何使用ASCII進行編碼

    ASCII(American Standard Code for Information Interchange,美國信息交換標準代碼)是一種字符編碼標準,用于文本電子交換。它主要包括128個字符
    的頭像 發表于 11-10 09:37 ?834次閱讀

    什么是工業用掃設備,工業掃器有什么優勢

    工業用掃設備概述工業用掃設備,通常指的是工業掃器,是一種高性能的一維條碼和二維條碼掃描設備,廣泛應用于工業生產、倉儲等場景中。相較于普通的消費級掃設備,工業掃
    的頭像 發表于 11-07 14:44 ?223次閱讀
    什么是工業用掃<b class='flag-5'>碼</b>設備,工業掃<b class='flag-5'>碼</b>器有什么優勢

    容器在運行中電壓超過額定電壓需要退出運行嗎

    當電容器運行中的電壓超過額定電壓時,通常需要采取措施。如果電壓超出額定電壓的幅度較大且持續時間較長,建議將電容器 退出運行 ,以避免損壞設備。以下是一些考慮因素: 電容器的過電壓耐受能
    的頭像 發表于 09-19 14:44 ?1595次閱讀
    電<b class='flag-5'>容器</b>在運行中電壓超過額定電壓需要<b class='flag-5'>退出</b>運行嗎

    新大陸掃器哪款能夠識別DPM?新大陸二維器介紹

    隨著工業自動化的不斷發展,二維和數據矩陣(DPM)在生產、物流和倉儲等領域的應用越來越廣泛。DPM因其高密度和小體積的特點,常常被應用于金屬、塑料等各種材料的直接標記。這就對掃
    的頭像 發表于 07-29 14:36 ?450次閱讀
    新大陸掃<b class='flag-5'>碼</b>器哪款能夠識別DPM<b class='flag-5'>碼</b>?新大陸二維<b class='flag-5'>碼</b>掃<b class='flag-5'>碼</b>器介紹

    ARM平臺實現Docker容器技術

    restart 圖24 (2)創建并啟動容器。由于Docker使用VFS存儲驅動程序,當創建容器時,需要先創建容器層,
    發表于 07-25 14:36

    ARM平臺實現Docker容器技術

    創建容器層,容器層需要對上一層進行“深拷貝”,因此完成創建并啟動容器整個過程需要耗時約1min,請耐心等待。 Target#docker
    發表于 07-17 11:05

    固定讀器怎么選型 工業二維器推薦

    器選型是一項重要的決策過程,涉及到多個因素的考慮。在選擇讀器時,我們需要根據實際應用環境、使用方式、預算、需求以及與其他設備或系統的兼容性等方面進行綜合評估。本文將為您詳細解讀讀器選型
    的頭像 發表于 06-24 14:19 ?447次閱讀
    固定讀<b class='flag-5'>碼</b>器怎么選型 工業二維<b class='flag-5'>碼</b>讀<b class='flag-5'>碼</b>器推薦

    遠距離掃模組,用于停車場掃

    遠距離掃模組在停車場掃支付的應用近年來得到了廣泛的推廣和應用。這些掃描模組專門針對識別距離進行了優化,能夠在1米甚至更遠的距離外精準識讀手機屏幕二維或紙質二維。它們通常采用先進
    的頭像 發表于 06-06 14:29 ?418次閱讀
    遠距離掃<b class='flag-5'>碼</b>模組,用于停車場掃<b class='flag-5'>碼</b>

    器 掃器模塊

    模組
    深圳市遠景達物聯網技術有限公司
    發布于 :2024年05月15日 10:13:44

    模塊 DPM工業掃

    模組
    深圳市遠景達物聯網技術有限公司
    發布于 :2024年04月23日 16:23:25

    STM32 QSPI怎么退出映射模式?

    FLASH 中,多 QSPI 進行ERASE 和 PROGRAMME, 這個時候我就需要退出映射模式,請問怎么退出映射模式
    發表于 03-29 08:15

    STM32調試進入低功耗而沒有退出,如何解決?

    STM32調試遇到如圖問題,大意是進入低功耗而沒有退出,請教大神們如何解決?
    發表于 03-22 07:52

    ARM平臺實現Docker容器技術

    什么是Docker? (1)Docker的架構 Docker是一個開源的應用容器引擎,讓開發者可打包他們的應用以及依賴包到一個可移植的鏡像中,然后發布到任何流行的Linux或Windo
    的頭像 發表于 03-07 13:48 ?851次閱讀
    ARM平臺實現<b class='flag-5'>Docker</b><b class='flag-5'>容器</b>技術

    sim卡pin怎么設置 pin和puk有什么區別

    可以設置一個PIN以及一個PUK。PIN是個人識別(Personal Identification Number),PUK是個人解
    的頭像 發表于 02-19 16:20 ?5290次閱讀
    百家乐纯数字玩法| 游戏厅百家乐技巧| 永昌县| 伯爵百家乐娱乐场| 百家乐官网连跳趋势| 棋牌游戏平台排行榜| 女神百家乐娱乐城| K7百家乐官网的玩法技巧和规则| 加州百家乐官网娱乐城| 全讯网22335555| 百家乐冯耕耘打法| 百家乐官网怎么玩最保险| 磴口县| 百乐坊娱乐城官网| 博九百家乐的玩法技巧和规则| 天地人百家乐现金网| KTV百家乐官网的玩法技巧和规则 王子百家乐官网的玩法技巧和规则 | 现场百家乐官网玩法| 百家乐官网开庄概率| 最新娱乐城注册送体验金| 百家乐bp| 海王星百家乐技巧| 88百家乐现金网| 百家乐官网园蒙特卡罗| 百家乐官网一般多大码| 博彩百家乐官网软件| 苍山县| 博湖县| 大理市| 肥城市| 太子娱乐城网址| 新世纪娱乐城信誉怎么样| 桐城太阳城招聘| 百利宫百家乐的玩法技巧和规则| 百家乐波音平台有假吗| 澳门百家乐官网群代理| 繁体子24画的有| 百家乐增值公式| 大佬百家乐官网娱乐城| 蓝盾百家乐官网代理| 博彩百家乐官网字谜总汇|