在docker宿主机上查找指定容器内运行的所有进程的PID
转载 https://www.cnblogs.com/keithtt/p/7591097.html
找到指定容器的所有进程的PID可以更方便的对容器进程进行管理,特别是在某些容器卡住无法连接的场景。
1、找出容器ID
# docker ps
2、进入相应目录
# cd /sys/fs/cgroup/memory/docker/d14e1a6182eeed7c8f2a7c0a315a790a16bfbab1fdc7a73813cdeee494e8050a/
3、进程号就存在一个文件里面
# cat cgroup.procs
1761
1869
1877
1892
1900
1903
3512
4793
4794
4、查看所有进程,找出对应的进程树分支
# ps auxwwf
...
root 1761 0.0 0.0 11360 2432 pts/13 Ss 06:40 0:00 \_ /bin/bash /root/bin/autoboot.sh
root 1869 0.0 0.0 66744 2772 ? Ss 06:40 0:00 \_ /usr/sbin/sshd
497 1877 0.0 0.0 41396 2732 ? Ss 06:40 0:00 \_ /usr/sbin/nrpe -c /etc/nagios/nrpe.cfg -d
root 1892 50.9 1.0 19031092 1068868 pts/13 Sl 06:40 143:06 \_ /usr/local/jdk/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -server -Xms2048m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/jvm/tomcat.dump -Xloggc:/var/log/jvm/tomcat_real.log -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/usr/local/tomcat/endorsed -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
root 1900 0.0 0.0 20508 2304 ? Ss 06:40 0:00 \_ crond
root 1903 0.0 0.0 11492 2688 pts/13 S+ 06:40 0:00 \_ /bin/bash
root 3512 13.5 3.9 3922968 3892780 ? Ssl 06:46 37:15 \_ /usr/local/bin/redis-server *:6380
root 4793 0.0 0.0 109424 1880 ? Ss 06:47 0:00 \_ nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
496 4794 0.0 0.0 109888 4516 ? S 06:47 0:00 \_ nginx: worker process
...
还有一种更有效的获取容器进程的方法,这种方法依赖docker程序,要是程序卡住就无法使用了。
docker top CONTAINERID
# docker top d14e1a6182eeed7c8f2a7c0a315a790a16bfbab1fdc7a73813cdeee494e8050a
UID PID PPID C STIME TTY TIME CMD
root 1761 4765 0 06:40 pts/13 00:00:00 /bin/bash /root/bin/autoboot.sh
root 1869 1761 0 06:40 ? 00:00:00 /usr/sbin/sshd
497 1877 1761 0 06:40 ? 00:00:00 /usr/sbin/nrpe -c /etc/nagios/nrpe.cfg -d
root 1892 1761 50 06:40 pts/13 02:33:35 /usr/local/jdk/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -server -Xms2048m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/jvm/tomcat.dump -Xloggc:/var/log/jvm/tomcat_real.log -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/usr/local/tomcat/endorsed -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
root 1900 1761 0 06:40 ? 00:00:00 crond
root 1903 1761 0 06:40 pts/13 00:00:00 /bin/bash
root 3512 1761 13 06:46 ? 00:39:38 /usr/local/bin/redis-server *:6380
root 4793 1761 0 06:47 ? 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
496 4794 4793 0 06:47 ? 00:00:00 nginx: worker process
还可以单独查看指定容器所属docker子进程的PID。
docker inspect -f '{{.State.Pid}}' CONTAINERID
# docker inspect -f '{{.State.Pid}}' d14e1a6182eeed7c8f2a7c0a315a790a16bfbab1fdc7a73813cdeee494e8050a
1761
在docker宿主机上查找指定容器内运行的所有进程的PID的更多相关文章
- shell查找指定时间段内的文件
#!/bin/bash#20170905 输入参数格式echo "显示"$1"的备份文件"date_0=$1date_1=`expr $date_0 + 1`d ...
- 理解Docker(3):Docker 使用 Linux namespace 隔离容器的运行环境
本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...
- Windows Phone 为指定容器内的元素设置样式
在Windows Phone中设置元素样式有多种 拿TextBlock来说 1.我们可以直接在控件上设置: <TextBlock Text="自身样式设置" Width=&q ...
- Docker 为 ASP.NET Core WebApi 应用程序生成 Docker 映像,创建容器并运行
1.使用VS2017新建ASP.NET Core WebApi项目 选择API启用Docker支持 2.为 ASP.NET Core WebApi 应用程序生成 Docker 映像,并创建容器运行 生 ...
- docker 在宿主机上根据进程PID查找归属容器ID
在使用docker时经常出现一台docker主机上跑了多个容器,可能其中一个容器里的进程导致了整个宿主机load很高,其实一条命令就可以找出罪魁祸首 #查找容器ID docker inspect -f ...
- 容器(docker)内运行Nginx
容器内运行nginx其实很简单,但是一开始还是浪费了我很多时间.这里写下来给大家省点时间. 1.创建nginx文件夹,放置各种配置及日志等. mkdir /docker/nginx docker 文件 ...
- Docker小白到实战之容器数据卷,整理的明明白白
前言 上一篇把常用命令演示了一遍,其中也提到容器的隔离性,默认情况下,容器内应用产生的数据都是由容器本身独有,如果容器被删除,对应的数据文件就会跟着消失.从隔离性的角度来看,数据就应该和容器共存亡:但 ...
- 026.[转] 基于Docker及Kubernetes技术构建容器云平台 (PaaS)
[编者的话] 目前很多的容器云平台通过Docker及Kubernetes等技术提供应用运行平台,从而实现运维自动化,快速部署应用.弹性伸缩和动态调整应用环境资源,提高研发运营效率. 本文简要介绍了与容 ...
- 1.docker介绍、命令、容器、镜像、数据卷、Dockerfile、常用软件安装、推送阿里云
一.docker介绍 1.docker是什么 一款产品从开发到上线,从操作系统,到运行环境,再到应用配置.作为开发+运维之间的协作我们需要关心很多东西,这也是很多互联网公司都不得不面对的问题,特别是各 ...
随机推荐
- 05 ajax,jquery,xstream,json解析
Ajax “Asynchronous Javascript And XML”(异步JavaScript和XML),把原有的技术,整合到一起 1.使用CSS和XHTML来表示. ...
- [P2051 [AHOI2009]中国象棋] DP
https://www.luogu.org/problemnew/show/P2051 题目描述 这次小可可想解决的难题和中国象棋有关,在一个N行M列的棋盘上,让你放若干个炮(可以是0个),使得没有一 ...
- hdu4135 Co-prime 容斥原理
Given a number N, you are asked to count the number of integers between A and B inclusive which are ...
- LeetCode - Reorganize String
Given a string S, check if the letters can be rearranged so that two characters that are adjacent to ...
- 【mybatis源码学习】mybtias基础组件-反射工具
一.JavaBean的规范 类中定义的成员变量也称为字段,属性则是通过getter/setter方法得到的,属性只与类中的方法有关,与是否存在对应成员变量没有关系. 属性的getter/setter方 ...
- zabbix监控第一台主机系统
注意zabbix客户端和zabbix服务端版本要一致,否则很容易出问题 实验环境,在第一台centos7(ip为192.168.245.128,以下简称主机1)上安装zabbix服务器端,在第二台ce ...
- xencenter如何安装Centos7虚拟机系统
xencenter的ip地址192.168.245.134(win10系统) 首先我们在win10系统安装好xencenter(这个软件可以直接在xenserver启动后,通过访问xenserver的 ...
- 线性代数及其应用 (David C.Lay, Steven R.Lay 著)
第1章 线性代数中的线性方程组 (已看) 介绍性实例 经济学与工程中的线性模型 1.1 线性方程组 1.2 行化简与阶梯形矩阵 1.3 向量方程 1.4 矩阵方程Ax=b 1.5 线性方程组的解集 1 ...
- SharePoint Online 使用 adal js 获取access token
最近在写一些SharePoint 的sample code, 有兴趣的小伙伴可以查看我的GitHub. 今天给大家介绍SharePoint Framework (SPFx )web part 当中怎 ...
- c# 线程同步各类锁
1)原子操作(Interlocked):所有方法都是执行一次原子读取或一次写入操作. 2)lock()语句:避免锁定public类型,否则实例将超出代码控制的范围,定义private对象来锁定. 3) ...