我的docker随笔24:docker产生coredump文件
docker容器中运行 C++ 程序,有时崩溃,但没日志,也没提示。之前掌握了 coredump 调试,本文在容器中尝试。
操作
先查看core大小:
$ ulimit -a | grep core
core file size (blocks, -c) 0
设置:
$ulimit -c unlimited
再查看:
$ ulimit -a | grep core
core file size (blocks, -c) unlimited
设置路径
$ sudo echo 'core.%t.%e.%p' | sudo tee /proc/sys/kernel/core_pattern
运行镜像:
docker run -v /home:/home -it latelee/myserver bash
进入对应的程序目录:
# cd /home/latelee/docker/test/myserver/
运行有段错误的测试程序:
# ./myserver
Segmentation fault (core dumped)
查看是否产生:
# ls
Dockerfile core.1535079291.myserver.11 entrypoint.sh config.ini myserver
生成的coredump文件为core.1535079291.myserver.11
core设置永久生效
编辑/etc/security/limits.conf
文件,修改core相关的配置项,如下:
* soft core unlimited
root hard core unlimited
编辑/etc/sysctl.conf文件,在文件最后添加:
kernel.core_pattern = core.%t.%e.%p
注:以上2个文件均需root权限打开。
小结
0、程序必须使用-g编译,即程序是带有调试信息的,否则,即使有coredump,也看不出问题所在。
1、先在宿主机上执行ulimit -c unlimited
,并且设置生成coredump路径。
2、再在docker容器里执行程序。
经验
1、网上有说法提到在docker run
时带--ulimit core=-1 --security-opt seccomp=unconfined
参数,经验证,带与不带都可以生成coredump文件。由于笔者一般使用docker-compose
来编排容器,这个还不知道怎么写到docker-compose.yml
文件,所以暂不使用。
2、关于设置coredump文件路径,建议在/tmp或单独挂载的目录,上文仅是演示,没有实际指导意义。
我的docker随笔24:docker产生coredump文件相关推荐
- 我的docker随笔:开篇
layout: post title: keywords: category : docker容器 tags : [docker] 李迟按: 自换新工作来,几乎没有再更新博客了.从去年下半年开始,陆续 ...
- docker 随笔记录
1.docker 固定网络ip地址,启动 Docker的时候,用 --network 参数,可以指定网络类型 eg:docker run -itd --name test1 --network bri ...
- 我的docker随笔35:jenkins服务部署
本文涉及一种在容器中部署 jenkins 服务的方法,后续将其与 gitlab 配合以实现 CICD 功能.其目的是为了在实际工作中使用代码托管及自动化操作. 一.引言 因工作需要,需部署 jenki ...
- 我的docker随笔22:多域名同主机部署
需求: 只有一台云主机,但有多个不同域名网站,甚至还有二级域名.不能通过端口访问,即只有域名(二级域名).同时需要启用 https (到期自动更新证书). 网站内容为静态文件(当前暂定),docker ...
- 我的docker随笔17:使用docker-compose启动MySQL、Redis和Mongo
一.背景 有网友咨询用docker-compose启动几个存储服务,这些服务包括了MySQL.Redis.Mongo.恰好笔记没做过这一方面,趁机会学习一下. 二.要求 需要启动的docker如下: ...
- 我的docker随笔16:构建一个特定的nodejs镜像
一.背景 某网友需要对区块链交易的项目进行测试.测试脚本需要在nodejs环境中运行,脚本有server.js.package.json,主要依赖包为web3(当然还是其它的).为方便测试,较好的解决 ...
- 我的docker随笔13:docker源码编译进阶篇
本文与前面文章相同,但多了一些分析的步骤. 一.环境搭建 docker的编译,需要在宿主机预先安装docker软件.因为编译docker的源码时,会构建一个docker镜像并运行,在这个容器里面进行b ...
- 我的docker随笔12:docker源码编译
因工作需要从源码编译docker,本文对此进行介绍. 一.环境搭建 docker的编译,需要在宿主机预先安装docker软件.因为编译docker的源码时,会构建一个docker镜像并运行,在这个容器 ...
- 我的docker随笔10:docker客户端使用其它主机的docker服务器
我们使用的docker,都是在本机之内使用的,即docker服务端与客户端都有同一个机器,但是,有时候,需要在本机连接远程服务器的docker,本文就此情形展开研究. 基础知识:docker的运行 我 ...
最新文章
- 微软 服务器和工具产品,微软服务器和工具部总裁鲍伯·穆格里亚辞职
- 怎么看到方法内引用方法的注释_开门就看到餐厅,玄关怎么设计?试试这3个方法,专为小户型设计...
- 关于Cocos2d-x中让主角运动的方法
- arcgis选出点规定范围的面
- 过去式加ed的发音_【思语小课堂】时态二三事:规则动词过去式的发音规则
- oracle语句insert into select如何加后续插入条件
- 涂威威:第四范式经验与思考分享
- latex中怎么设置每一行文字都对齐_LaTeX技巧870:Latex如何在设置行距后让字体垂直居中?...
- 推荐下载使用:COMODO Internet Security V5.0.157302.1066 多国语言版(含:简体中文)
- css浮动会有什么影响,CSS,浮动及其影响
- 这里是一个简单的CRM客户关系管理系统的开发教程,你值得拥有哟!
- linux终端打开excel,linux 打开excel命令 java
- linux命令清理磁盘空间,Linux如何使用命令行清理磁盘来增加空间
- 小甲鱼python课后题共多少讲_小甲鱼python视频第七讲(课后习题)
- 摄像机和镜头的基础知识
- 华中科技大学网络教材
- 教师python培训心得体会
- 热招 | 我们是 Towhee 产研团队
- 使用 easyExcel 生成多个 excel 并打包成zip压缩包
- 【Golang】Go 语言 XML 的序列与反序列化实践