最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決Docker容器異常退出Exit(253)問題

 更新時(shí)間:2023年06月26日 17:06:59   作者:畢健bjbj  
這篇文章主要介紹了解決Docker容器異常退出Exit(253)問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

容器異常退出,狀態(tài)碼為253

我遇到的情況為容器內(nèi)掛載到docker卷的目錄不存在,導(dǎo)致掛載失敗,容器異常退出

具體場景

使用rocketmq官方工具制作指定版本鏡像,使用docker-compose啟動nameSrv1+MasterBroker1+SlaveBroker*1,將broker的日志目錄和存儲目錄掛載在docker卷上,具體docker-compose如下。

version: '2'
services:
? ? mq_nsrv:
? ? ? ? image: apacherocketmq/rocketmq:4.3.1
? ? ? ? container_name: rocketmq_namesrv
? ? ? ? ports:
? ? ? ? ? ? - 9876:9876
? ? ? ? volumes:
? ? ? ? ? ? - mq_nsrv:/home/rocketmq/logs
? ? ? ? ? ? - /etc/localtime:/etc/localtime
? ? ? ? ? ? - /etc/timezone:/etc/timezone
? ? ? ? command: sh mqnamesrv
? ? ? ? networks:
? ? ? ? ? ? - mq_net
? ? mq_broker_m:
? ? ? ? image: apacherocketmq/rocketmq:4.3.1
? ? ? ? container_name: rocketmq_broker_m
? ? ? ? links:
? ? ? ? ? ? - mq_nsrv
? ? ? ? depends_on:
? ? ? ? ? ? - mq_nsrv
? ? ? ? environment:
? ? ? ? ? ? JAVA_OPTS: " -Duser.home=/opt -Dlogging.level.root=info"
? ? ? ? ? ? JAVA_OPT_EXT: "-server -Xms256m -Xmx256m -Xmn256m"
? ? ? ? ports:
? ? ? ? ? ? - 10909:10909
? ? ? ? ? ? - 10911:10911
? ? ? ? ? ? - 10912:10912
? ? ? ? volumes:
? ? ? ? ? ? - /etc/localtime:/etc/localtime
? ? ? ? ? ? - /etc/timezone:/etc/timezone
? ? ? ? ? ? - master_broker_log:/home/rocketmq/log
? ? ? ? ? ? - master_broker_store:/home/rocketmq/store
? ? ? ? ? ? - ./broker_m.conf:/opt/rocketmq-4.3.1/conf/broker.conf
? ? ? ? command: sh mqbroker -c /opt/rocketmq-4.3.1/conf/broker.conf
? ? ? ? networks:
? ? ? ? ? ? - mq_net
? ? mq_broker_s:
? ? ? ? image: apacherocketmq/rocketmq:4.3.1
? ? ? ? container_name: rocketmq_broker_s
? ? ? ? links:
? ? ? ? ? ? - mq_nsrv
? ? ? ? depends_on:
? ? ? ? ? ? - mq_nsrv
? ? ? ? environment:
? ? ? ? ? ? JAVA_OPTS: " -Duser.home=/opt -Dlogging.level.root=info"
? ? ? ? ? ? JAVA_OPT_EXT: "-server -Xms256m -Xmx256m -Xmn256m"
? ? ? ? ports:
? ? ? ? ? ? - 11909:10909
? ? ? ? ? ? - 11911:10911
? ? ? ? ? ? - 11912:10912
? ? ? ? volumes:
? ? ? ? ? ? - /etc/localtime:/etc/localtime
? ? ? ? ? ? - /etc/timezone:/etc/timezone
? ? ? ? ? ? - slave_broker_log:/home/rocketmq/log
? ? ? ? ? ? - slave_broker_store:/home/rocketmq/store
? ? ? ? ? ? - ./broker_s.conf:/opt/rocketmq-4.3.1/conf/broker.conf
? ? ? ? command: sh mqbroker -c /opt/rocketmq-4.3.1/conf/broker.conf
? ? ? ? networks:
? ? ? ? ? ? - mq_net
volumes:
? ? mq_nsrv:
? ? ? ? driver: local
? ? master_broker_log:
? ? ? ? driver: local
? ? master_broker_store:
? ? ? ? driver: local
? ? slave_broker_log:
? ? ? ? driver: local
? ? slave_broker_store:
? ? ? ? driver: local
networks:
? ? mq_net:
? ? ? ? driver: bridge

原因分析

在此制作的鏡像中,/home/rocketmq/目錄下為空,在brocker運(yùn)行之后,生成/log和/store目錄,并對其中進(jìn)行寫入數(shù)據(jù),此時(shí)使用docker-compose啟動時(shí),無法將卷掛載在/log和/store目錄下。

問題解決

重新制作鏡像,在指定目錄下創(chuàng)建目錄(從根本解決問題)

在掛載卷的時(shí)候,使用其根目錄掛載,不區(qū)分log和store卷,直接掛在/home/rocketmq下(省事)

附成功docker-compose

version: '2'
services:
? ? mq_nsrv:
? ? ? ? image: apacherocketmq/rocketmq:4.3.1
? ? ? ? container_name: rocketmq_namesrv
? ? ? ? ports:
? ? ? ? ? ? - 9876:9876
? ? ? ? volumes:
? ? ? ? ? ? - mq_nsrv:/home/rocketmq/logs
? ? ? ? ? ? - /etc/localtime:/etc/localtime
? ? ? ? ? ? - /etc/timezone:/etc/timezone
? ? ? ? command: sh mqnamesrv
? ? ? ? networks:
? ? ? ? ? ? - mq_net
? ? mq_broker_m:
? ? ? ? image: apacherocketmq/rocketmq:4.3.1
? ? ? ? container_name: rocketmq_broker_m
? ? ? ? links:
? ? ? ? ? ? - mq_nsrv
? ? ? ? depends_on:
? ? ? ? ? ? - mq_nsrv
? ? ? ? environment:
? ? ? ? ? ? JAVA_OPTS: " -Duser.home=/opt -Dlogging.level.root=info"
? ? ? ? ? ? JAVA_OPT_EXT: "-server -Xms256m -Xmx256m -Xmn256m"
? ? ? ? ports:
? ? ? ? ? ? - 10909:10909
? ? ? ? ? ? - 10911:10911
? ? ? ? ? ? - 10912:10912
? ? ? ? volumes:
? ? ? ? ? ? - /etc/localtime:/etc/localtime
? ? ? ? ? ? - /etc/timezone:/etc/timezone
? ? ? ? ? ? - master_broker:/home/rocketmq
? ? ? ? ? ? - ./broker_m.conf:/opt/rocketmq-4.3.1/conf/broker.conf
? ? ? ? command: sh mqbroker -c /opt/rocketmq-4.3.1/conf/broker.conf
? ? ? ? networks:
? ? ? ? ? ? - mq_net
? ? mq_broker_s:
? ? ? ? image: apacherocketmq/rocketmq:4.3.1
? ? ? ? container_name: rocketmq_broker_s
? ? ? ? links:
? ? ? ? ? ? - mq_nsrv
? ? ? ? depends_on:
? ? ? ? ? ? - mq_nsrv
? ? ? ? environment:
? ? ? ? ? ? JAVA_OPTS: " -Duser.home=/opt -Dlogging.level.root=info"
? ? ? ? ? ? JAVA_OPT_EXT: "-server -Xms256m -Xmx256m -Xmn256m"
? ? ? ? ports:
? ? ? ? ? ? - 11909:10909
? ? ? ? ? ? - 11911:10911
? ? ? ? ? ? - 11912:10912
? ? ? ? volumes:
? ? ? ? ? ? - /etc/localtime:/etc/localtime
? ? ? ? ? ? - /etc/timezone:/etc/timezone
? ? ? ? ? ? - slave_broker:/home/rocketmq
? ? ? ? ? ? - ./broker_s.conf:/opt/rocketmq-4.3.1/conf/broker.conf
? ? ? ? command: sh mqbroker -c /opt/rocketmq-4.3.1/conf/broker.conf
? ? ? ? networks:
? ? ? ? ? ? - mq_net
volumes:
? ? mq_nsrv:
? ? ? ? driver: local
? ? master_broker:
? ? ? ? driver: local
? ? slave_broker:
? ? ? ? driver: local
networks:
? ? mq_net:
? ? ? ? driver: bridge

Docker容器退出狀態(tài)碼existed

在起容器的時(shí)候,發(fā)現(xiàn)容器出于existed狀態(tài),狀態(tài)碼為130,查找后發(fā)現(xiàn),自己啟動的時(shí)候使用了非后臺啟動。當(dāng)手動 ctrl+C 退出命令行的時(shí)候,容器也就退出了。

開始的時(shí)候,不知道狀態(tài)碼含義,糾結(jié)了很久,于是把一些狀態(tài)碼的含義搜羅了一下。

  • 首先狀態(tài)碼必須在 0-255 之間
  • 0 表示正常退出
  • 外界中斷將程序退出的時(shí)候狀態(tài)碼區(qū)間在 129-255,(操作系統(tǒng)給程序發(fā)送中斷信號,比如 kill -9 是 SIGKILL,ctrl+c 是 SIGINT)
  • 一般程序自身原因?qū)е碌漠惓M顺鰻顟B(tài)區(qū)間在 1-128 (這只是一般約定,程序如果一定要用129-255的狀態(tài)碼也是可以的)

下圖為部分狀態(tài)碼:

在這里插入圖片描述

常見的容器退出狀態(tài)碼解釋

Exit Code 0

退出代碼0表示特定容器沒有附加前臺進(jìn)程

該退出代碼是所有其他后續(xù)退出代碼的例外

這不一定意味著發(fā)生了不好的事情。如果開發(fā)人員想要在容器完成其工作后自動停止其容器,則使用此退出代碼。比如:kubernetes job 在執(zhí)行完任務(wù)后正常退出碼為 0

Exit Code 1

程序錯(cuò)誤,或者Dockerfile中引用不存在的文件,如 entrypoint中引用了錯(cuò)誤的包

程序錯(cuò)誤可以很簡單,例如 “除以0”,也可以很復(fù)雜,比如空引用或者其他程序 crash

Exit Code 137

表明容器收到了 SIGKILL 信號,進(jìn)程被殺掉,對應(yīng)kill -9

引發(fā)SIGKILL的是docker kill。這可以由用戶或由docker守護(hù)程序來發(fā)起,手動執(zhí)行:docker kill

137 比較常見,如果 pod 中的limit 資源設(shè)置較小,會運(yùn)行內(nèi)存不足導(dǎo)致 OOMKilled,此時(shí)state 中的 ”OOMKilled” 值為true,你可以在系統(tǒng)的 dmesg -T 中看到 oom 日志

Exit Code 139

表明容器收到了 SIGSEGV 信號,無效的內(nèi)存引用,對應(yīng)kill -11

一般是代碼有問題,或者 docker 的基礎(chǔ)鏡像有問題

Exit Code 143

表明容器收到了 SIGTERM 信號,終端關(guān)閉,對應(yīng)kill -15

一般對應(yīng) docker stop 命令

有時(shí)docker stop也會導(dǎo)致Exit Code 137。發(fā)生在與代碼無法處理 SIGTERM 的情況下,docker進(jìn)程等待十秒鐘然后發(fā)出 SIGKILL 強(qiáng)制退出。

不常用的一些 Exit Code

Exit Code 126: 權(quán)限問題或命令不可執(zhí)行

Exit Code 127: Shell腳本中可能出現(xiàn)錯(cuò)字且字符無法識別的情況

Exit Code 1 或 255:因?yàn)楹芏喑绦騿T寫異常退出時(shí)習(xí)慣用 exit(1) 或 exit(-1),-1 會根據(jù)轉(zhuǎn)換規(guī)則轉(zhuǎn)成 255。這個(gè)一般是自定義 code,要看具體邏輯。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • docker部署蝸牛影院系統(tǒng)詳細(xì)流程分析

    docker部署蝸牛影院系統(tǒng)詳細(xì)流程分析

    這篇文章給大家介紹docker部署蝸牛影院系統(tǒng),在部署項(xiàng)目時(shí)系統(tǒng)硬件配置是CPU2核以上,內(nèi)存8G,詳細(xì)給大家介紹了安裝流程,對docker部署蝸牛電影院系統(tǒng)感興趣的朋友跟隨小編一起看看吧
    2021-05-05
  • 在Ubuntu中安裝Docker和docker的使用方式

    在Ubuntu中安裝Docker和docker的使用方式

    這篇文章主要介紹了在Ubuntu中安裝Docker和docker的使用方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • Docker 創(chuàng)建容器后再修改 hostname的詳細(xì)過程

    Docker 創(chuàng)建容器后再修改 hostname的詳細(xì)過程

    這篇文章主要介紹了Docker 創(chuàng)建容器后再修改 hostname的詳細(xì)過程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-10-10
  • docker?system?prune命令使用示例詳解

    docker?system?prune命令使用示例詳解

    docker system prune是一個(gè)用于清理Docker系統(tǒng)資源的命令,它用于刪除未使用的數(shù)據(jù)(如未使用的鏡像、容器、網(wǎng)絡(luò)和存儲卷)以釋放磁盤空間,下面這篇文章主要給大家介紹了關(guān)于docker?system?prune命令使用示例的相關(guān)資料,需要的朋友可以參考下
    2024-04-04
  • 詳解docker中使用systemctl啟動服務(wù)報(bào)錯(cuò)的解決辦法

    詳解docker中使用systemctl啟動服務(wù)報(bào)錯(cuò)的解決辦法

    這篇文章主要介紹了詳解docker中使用systemctl啟動服務(wù)報(bào)錯(cuò)的解決辦法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Docker?自定義Dev環(huán)境并部署php

    Docker?自定義Dev環(huán)境并部署php

    這篇文章主要介紹了Docker?自定義Dev環(huán)境(部署PHP),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-01-01
  • docker部署項(xiàng)目/var/lib/docker/overlay2目錄滿了該如何清理

    docker部署項(xiàng)目/var/lib/docker/overlay2目錄滿了該如何清理

    Docker中的/var/lib/docker/overlay2目錄是用于存儲Docker容器的數(shù)據(jù)層和鏡像層的,使用Docker一段時(shí)間后這個(gè)目錄可能會變得非常大,這篇文章主要給大家介紹了關(guān)于docker部署項(xiàng)目/var/lib/docker/overlay2目錄滿了該如何清理的相關(guān)資料,需要的朋友可以參考下
    2024-04-04
  • 基于docker部署skywalking實(shí)現(xiàn)全鏈路監(jiān)控功能

    基于docker部署skywalking實(shí)現(xiàn)全鏈路監(jiān)控功能

    這篇文章主要介紹了基于docker部署skywalking實(shí)現(xiàn)全鏈路監(jiān)控,skywalking提供了在很多不同的場景下用于觀察和監(jiān)控分布式系統(tǒng)的方式,文中給大家介紹如何快速部署skywalking全鏈路監(jiān)控,感興趣的朋友一起看看吧
    2022-03-03
  • Docker學(xué)習(xí)之基于Dockerfile搭建JAVA Tomcat運(yùn)行環(huán)境的方法

    Docker學(xué)習(xí)之基于Dockerfile搭建JAVA Tomcat運(yùn)行環(huán)境的方法

    本篇文章主要介紹了Docker學(xué)習(xí)之基于Dockerfile搭建JAVA Tomcat運(yùn)行環(huán)境的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-02-02
  • docker-compose編排單體nacos、rabbitmq、redis基礎(chǔ)服務(wù)詳解

    docker-compose編排單體nacos、rabbitmq、redis基礎(chǔ)服務(wù)詳解

    這篇文章主要介紹了docker-compose編排單體nacos、rabbitmq、redis基礎(chǔ)服務(wù),具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04

最新評論

磐安县| 三台县| 米脂县| 从化市| 澄迈县| 巴楚县| 随州市| 鸡东县| 报价| 城口县| 临邑县| 惠水县| 通辽市| 商丘市| 青河县| 苍山县| 新野县| 阳东县| 富源县| 庄浪县| 门头沟区| 正镶白旗| 阳原县| 通渭县| 施甸县| 安乡县| 二连浩特市| 墨玉县| 武定县| 青川县| 平湖市| 昌宁县| 青阳县| 兰西县| 南丹县| 兴隆县| 刚察县| 马龙县| 鄯善县| 巴东县| 白玉县|