跳至主要內容

八、Docker top 查看容器进程

安图新大约 3 分钟云原生Docker

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源

Docker 可以让开发者打包它们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化

Docker 使用完全使用沙箱机制,两个容器之间不会有任何接口 (这个有点像 iPhone 的 app ) ,更重要的是容器性能开销极低

学习前提

在继续阅读之前,我们希望你对 Linux 有一些基本的了解,包括

1、 会使用Linux常用的命令;
2、 知道大部分的Linux常识,比如终端serviceip用户等;
3、 熟练使用Ubuntu或者Centos或者MacOS种的一种昂;

如果你对这些知识还是一知半解,可以访问我们的 Linux 基础教程 先进行一些简单的了解

Docker的应用场景

1、 Web应用的自动化打包和发布;
2、 自动化测试和持续集成、发布;
3、 在服务型环境中部署和调整数据库或其他的后台应用;
4、 从头编译或者扩展现有的OpenShift或CloudFoundry平台来搭建自己的PaaS环境;

Docker 的优点

1、 简化程序;

Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化
Docker 改变了虚拟化的方式,使开发者可以直接将自己的成果放入 Docker 中进行管理
方便快捷已经是 Docker 的最大优势,过去需要用数天乃至数周的 任务,在Docker容器的处理下,只需要数秒就能完成

2、 解决运维配置噩梦;

在没有 Docker 之前,每一台机器,每一个要用到的依赖,几乎都要重新配置一遍
比如新增一台 MySQL 数据库,就要从头开始配置所有环境
有了 Docker 之后,只需要从仓库里把之前的 MySQL 镜像拉出来,直接使用

3、 节省开支;

使用 Docker ,可以在一台电脑上部署多个服务,多个应用,从而充分榨干每一滴性能
同时,又不用担心多个应用之间出现相互访问的情况

相关链接

Docker 官网: http://www.docker.comopen in new window

Github Docker 源码: https://github.com/docker/dockeropen in new window

作为运维开发人员,我们可能需要经常查看容器的有哪些进程,和每个进程在执行什么任务

这个在Docker 容器中非常简单,只要使用 docker top 命令即可

docker top <container_id>

我们先使用 docker ps -a 查看一下所有容器的状态 ( 字段有节选 )

[root@www.hotmindshare.com ~]# docker ps -a
CONTAINER ID   STATUS
cf38bec0c26f   Exited (0) 35 minutes ago
e66458d65564   Up About an hour
4558b3b54da0   Exited (137) About an hour ago
e08201b591cd   Exited (0) 2 hours ago

然后我们就可以使用 docker top e66458d65564 命令查看容器 e66458d65564 的进程状态了

[root@www.hotmindshare.com ~]# docker top e66458d65564
PID   USER   TIME  COMMAND
3596  root   0:02  /bin/sh -c while true; do echo hello world ; sleep 1; done
7688  root   0:00  sleep 1

有字段标题在,每个字段什么意思就不用解释了

如果在一个已经停止的容器上使用 docker top 命令,则会报错

[root@www.hotmindshare.com ~]# docker top e08201b591cd
Error response from daemon: Container e08201b591cdccd198fa32c4eedbda4a9ca6c81ce2c066e885c592aede52a8a6 is not running

意思是容器没在运行状态

更多docker top 命令使用方法,可以访问 docker top 命令

上次编辑于:
贡献者: Andy