首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么我在主机上执行"ps aux“时可以看到docker容器进程?

在主机上执行"ps aux"命令时可以看到Docker容器进程,这是因为Docker利用Linux内核的容器化技术来实现虚拟化。Docker引擎在主机上运行,它通过使用Linux内核的命名空间和控制组(cgroups)功能,创建和管理容器。这些容器实际上是在主机操作系统上运行的进程。

当我们在主机上执行"ps aux"命令时,它会显示当前主机上所有正在运行的进程,包括Docker容器。Docker容器是通过在主机上创建一个独立的命名空间来实现隔离的,这使得容器内的进程在主机上看起来就像是普通的进程一样。

通过"ps aux"命令可以查看到Docker容器的进程ID(PID)、CPU使用率、内存占用等信息。这对于监控和管理容器非常有用,可以帮助我们了解容器的运行状态和资源使用情况。

腾讯云提供了一系列与Docker相关的产品和服务,包括腾讯云容器服务(Tencent Kubernetes Engine,TKE)和腾讯云容器实例(Tencent Container Instance,TCI)。TKE是一种高度可扩展的容器管理服务,可帮助用户轻松部署、管理和扩展容器化应用。TCI则是一种无需管理集群的容器服务,适用于快速部署和运行容器应用。

了解更多关于腾讯云容器服务的信息,请访问:腾讯云容器服务

了解更多关于腾讯云容器实例的信息,请访问:腾讯云容器实例

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

并非每个容器内部都能包含一个操作系统

ps之后出现两个进程在运行,一个是的服务,另外一个是刚刚执行ps,已经看到容器内部进程已经跟我们的宿主机中的服务完全隔离开了。...中创建进程可以通过指定参数返回一个全新的进程空间,这样的话的就做到了pid为1的目的,其实你到宿主机上查看下,这个docker中运行的服务,宿主机上存在着同样的进程,只不过这个进程的pid是真实的...上面刚刚说了,namespace只是对进程做了隔离,使其容器内部看不到宿主机的进程,但是对于宿主机来说,还是能够看到这些被隔离的进程。换句话说,这些被隔离的进程跟宿主机上的其它进程完全没什么区别。...你刚才上面举的例子,不是tomcat容器执行了一个ps,这明明是两个进程,在说了,可以在这个容器中运行其它服务,这些也都是正常运行的进程,这怎么能说是一个进程呢?...其实说的一个进程指的是只有一个进程是受docker控制的,其它进程虽然也在运行,但是他们不受docker的控制,它们都是野进程,如果的挂了,其它的都得跟着玩完。

98020

【探索 Kubernetes|容器基础进阶篇 系列1】容器的本质是进程

PID=1,并且运行的是 /bin/sh 命令,还有一个就是我们刚才执行ps 命令可以看到,我们已经被 Docker 隔离一个跟宿主机完全不同的环境当中。...容器的本质是一个进程 宿主机上我们执行 ps 命令可以看到,宿主机上有个进程,这个进程是我们运行容器所使用的命令,也代表了我们容器也是一个进程表现出来的,所以 容器的本质是一个进程。...为了表现这个容器进程我们做一个实验 首先连接工具开两个窗口 一个运行的是 docker run -it busybox /bin/sh 这样一条命令 另一个执行 ps -aux | grep "/bin.../sh" 找到这里的 docker run -it busybox /bin/sh 进程执行 kill -9 97285 (这里通过 ps 命令可以看到我的容器 PID 是97285)杀掉这个进程,如图可以看到...这,就是 Linux 容器最基本的实现原理了 Docker 容器这个听起来玄而又玄的概念,实际上是创建容器进程,指定了这个进程所需要启用的一组 Namespace 参数。

15900

理解 Docker 容器中 UID 和 GID 的工作原理

例如,当一个进程尝试写入文件,内核会检查创建该进程的uid和gid,以确定它是否具有足够的特权来修改文件。这里不使用用户名,而是使用uid。 服务器上运行 Docker 容器,仍然只有一个内核。...这样可以不使用sudo命令的情况下启动docker容器。然后,从容器外部,让我们来看看这个过程是如何呈现的。...当我检查容器外运行的进程发现它映射到用户“marc”,但在容器内部,它映射到用户“appuser”。这两个用户名只是显示它们的执行上下文所知道的映射到1001的用户名。 这并不是非常重要。...因此,当我执行诸如ps或top(或大多数监控工具)之类的命令进程映射到“marc”用户。...那时使用了一个 Dockerfile,其中的 uid 映射到本地主机上的不同用户名。当我们命令行上使用用户标志来启动一个执行“sleep infinity”进程容器,会发生什么呢?

29610

为什么构建容器需要 Namespace

在当前的命令行窗口使用 ps aux 命令查看一下进程信息: [root@docker-demo ~]# ps aux USER PID %CPU %MEM VSZ RSS TTY...aux 通过上述命令输出结果可以看到当前 Namespace 下 bash 为 1 号进程,而且我们也看不到主机上的其他进程信息。...当 Docker 新建一个容器, 它会创建这六种 Namespace,然后将容器中的进程加入这些 Namespace 之中,使得 Docker 容器中的进程只能看到当前 Namespace 中的系统资源...实际上, setns() 之后看到的这两个网卡,正是在前面启动的 Docker 容器里的网卡。...宿主机上,你可以ps 指令找到这个 set_ns 程序执行的 /bin/bash 进程,其真实的 PID 是 28499: # 宿主机上 ps aux | grep /bin/bash root

1.5K30

【云原生攻防研究】针对容器的渗透测试方法

如下图所示,特权模式意味着容器进程将具备等同于宿主机上进程的所有权限: ? 我们【云原生攻防研究】容器逃逸技术概览[7]介绍了处于特权模式如何进行容器逃逸的具体方法。.../x/cgroup.procs" 上述命令的实际效果是宿主机上执行ps aux命令,其结果被存储容器内/output文件中。...操作:执行grep '/docker' /proc/1/cgroup查看。 问题:当前环境内的进程数是否少于5个? 操作:执行ps aux查看。...问题:有哪些进程容器内运行? 操作:执行ps aux查看。 问题:宿主机内核版本是? 操作:执行uname -a查看。 问题:容器进程具有哪些权限(capabilities)?...问题:当前宿主机上有哪些可用镜像? 操作:执行docker images -a查看。 问题:当前宿主机上有哪些容器? 操作:执行docker ps -a查看。

2.4K40

docker与gosu

因此,容器内使用非root账号运行进程才是安全的方式,这也是我们制作镜像要注意的地方。...容器,并且启动后自动执行命令gosu root ps aux,作用是以root账号的身份执行ps aux,也就是将当前进程都打印出来,执行结果如下: [root@centos7 ~]# docker run...docker run的gosu root ps aux执行ps命令,该命令成了容器内的唯一进程,这说明通过gosu启动的是符合我们要求的(PID为1),接下来再看看用sudo执行ps命令的效果;...执行以下命令创建一个容器docker run --rm ubuntu:trusty sudo ps aux 上述命令会用sudo启动ps命令,结果如下: USER PID %CPU %...通过上面对可以小结: gosu启动命令只有一个进程,所以docker容器启动使用gosu,那么该进程可以做到PID等于1; sudo启动命令先创建sudo进程,然后该进程作为父进程去创建子进程,1

3.9K51

干货分享-Win2019上的Linux容器和Azure Stack上的K8

运行docker images,即可看到Windows 10上当前有Windows和Linux的容器镜像。 ?...再运行docker run -it supertest2014/nyan,即可同时启动一个Linux容器。 ? 我们可以通过docker ps命令查看这两个容器的信息。 ?...aux,即可查看该虚拟机的进程信息,其中有/bin/sh -c nyancat,这就是Linux容器进程(加以命名空间保护),还有/bin/gcs,这就是GCS组件,还有hv_vmbus_con,这是虚拟机的硬件驱动...还有一个/dev/sda这样的块设备,是可读写设备(rw),这是容器顶部的layer。当容器被杀死,该layer自动删除,也可以commit到镜像仓库,以实现快速代码迭代。...用Process Explorer,可以查看微型虚拟机的vmwp进程可以看到进程的访问句柄,下图中红色框里的sandbox.vhdx,就是Linux容器的顶层可读写layer,而绿色框里的多个layer.vhd

1.3K10

干货分享-Win2019上的Linux容器和Azure Stack上的K8

运行docker images,即可看到Windows 10上当前有Windows和Linux的容器镜像。 ?...再运行docker run -it supertest2014/nyan,即可同时启动一个Linux容器。 ? 我们可以通过docker ps命令查看这两个容器的信息。 ?...aux,即可查看该虚拟机的进程信息,其中有/bin/sh -c nyancat,这就是Linux容器进程(加以命名空间保护),还有/bin/gcs,这就是GCS组件,还有hv_vmbus_con,这是虚拟机的硬件驱动...还有一个/dev/sda这样的块设备,是可读写设备(rw),这是容器顶部的layer。当容器被杀死,该layer自动删除,也可以commit到镜像仓库,以实现快速代码迭代。...用Process Explorer,可以查看微型虚拟机的vmwp进程可以看到进程的访问句柄,下图中红色框里的sandbox.vhdx,就是Linux容器的顶层可读写layer,而绿色框里的多个layer.vhd

1.5K11

Docker安全入门与实战(四)

这提供了一种隔离形式:容器中运行的进程不能看到或影响其他容器中的进程或者宿主本身。 以下是一些常见的namespace类型实例。...通过列出所有进程,你可以识别Docker守护程序运行的用户。 ps aux | grep docker 由于守护程序以root身份运行,因此启动的任何容器将具有与主机的root用户相同的安全上下文。...namespace保护 启用namespace后,Docker Dameon将以其他用户身份运行。 ps aux | grep dockerd 启动容器容器内的用户将具有root权限。...使用Pid命名空间 与网络一样,容器可以看到进程也取决于它所属的命名空间。 通过更改pid命名空间,允许容器与超出其正常范围的进程进行交互。 例子 第一个容器将在其进程名称空间中运行。...因此,它可以访问的唯一进程容器中启动的进程

29830

深入浅出 Kubernetes:初识 Pod(上)

Kubernetes 项目里,Pod 的实现需要使用一个中间容器,这个容器叫做Infra容器( Infra容器k8s.gcr.io/pause占用极少的资源,它的镜像用汇编语言编写的,永远处于“暂停...aux 在这个容器里,我们不仅可以看到它本身的 ps aux 指令,还可以看到 nginx 容器进程,以及 Infra 容器的 /pause 进程。...这就意味着,这个 Pod 里的所有容器,会直接使用宿主机的网络、直接与宿主机进行 IPC 通信、看到宿主机里正在运行的所有进程。...如果它的值被定义为 Never 或者 IfNotPresent,则意味着 Pod 永远不会主动拉取这个镜像,或者只宿主机上不存在这个镜像才拉取。 Lifecycle 字段。...postStart 参数容器启动后,立刻执行一个指定的操作。需要明确的是,postStart 定义的操作,虽然是 Docker 容器 ENTRYPOINT 执行之后,但它并不严格保证顺序。

63420

容器的本质

举个例子 NameSpace可以让当前进程只能看到当前Namespace里的进程,看不到宿主机创建的进程。并且运行容器的命令为1号进程。...ps aux / # echo $$ 1 宿主机中可以看到容器进程ID并不为1。...但是我们使用ps aux,还是看到整个宿主机的进程,并且进程ID为1的还是Systemd,为什么呢? 这是因为ps命令是读/proc文件系统的,所以我们还需要进行文件系统的隔离。...\n"); return 1; } 再次运行进入容器中,当前的根目录是上面我们构造的testfs,并且ps aux命令只能看到当前namespace的进程,而看不到宿主机namespace的进程了。.../bin/bash 可以看到/sys/fs/cgroup/cpu,cpuacct/docker目录下创建了该容器的目录,目录下面包含了资源限制文件 [root@k8s-worker1 docker]

26220

Kubernetes Pod 网络精髓:pause 容器详解

前言 当检查你的 Kubernetes 集群的节点节点上执行 docker ps 命令,你可能会注意到一些被称为“暂停”(pause)的容器,例如: ?...正如你看到的,它当然不会只知道睡觉。它执行另一个重要的功能——即它扮演 PID 1 的角色,并在子进程成为孤儿进程的时候通过调用 wait() 收割这些僵尸子进程。...当在主机上发送 SIGKILL 或者 SIGSTOP(也就是 docker kill 或者 docker stop)强制终止容器的运行时,其实就是终止容器内的 init 进程。...→ docker exec -it ad3029c55476 /bin/sh / # ps aux PID USER TIME COMMAND 1 root 0:00.../pause 5 root 0:00 sh 9 root 0:00 /bin/sh 13 root 0:00 ps aux 我们完全可以容器中运行

8.6K64

Docker如何实现资源隔离

引言:理解docker如何做资源隔离,揭开容器的神秘面纱。 我们启动一个docker容器之后,容器内的资源和宿主机上其他进程是隔离的,docker的资源隔离是怎么做到的呢?...IPC的验证过程: 子进程执行ipcs -q命令, 查看Message Queues是空的 执行ipcmk -Q命令,创建一个MessageQueues 执行ipcs -q命令可以看到刚才添加的...PID的验证过程: 1.容器执行echo $$ 命令,看到当前进程号是1 2.宿主机执行ps aux 看到启动的服务进程号是62 Network的验证过程: 宿主机上执行ifconfig能看到网络设备信息...proc /proc 把proc挂载到当前进程的proc目录下 执行 ps -ef查看到当前容器进程,通过这个也进一步验证了PID的隔离 执行ls /proc看到当前的proc下面的内容已经发生了变化...的验证: 宿主机上执行id 启动容器 容器执行id 比较两次的结果,会发现是不同的uid gid信息,所以User的Namespace也是生效的。

2K20

使用SSH协议远程操作Docker

以下是启动提供给Docker守护程序的选项的典型示例: # ps -ef |grep dockerd root 23438 1 0 00:41 ?...-H fd:// 这是systemd内部运行Docker是使用的远程通信方式,由systemd创建套接字并激活Docker守护进程。...我们是否能通过 fd://的方式进行访问docker daemon,测试一下: 先停下Docker服务 systemctl stop docker 查看是否有Docker进程 # ps aux | grep...,我们可以看到仍然没有docker进程在运行,但是套接字 /var/run/docker.sock已经创建,它属于该进程 systemd,实际上,套接字现在已经准备好接收请求,即使 docker尚未运行...由Systemd启动, Systemd会执行此工作,但是终端上手动启动,您不会执行此工作,因此docker守护进程失败并中止。

1.9K20

Docker——底层实现原理及关键技术

aux 通过上述命令输出结果可以看到当前 Namespace 下 bash 为 1 号进程,而且我们也看不到主机上的其他进程信息。...同样的,容器内部,当我们自己的业务进程没有回收子进程的能力执行 docker run 启动容器可以添加 --init 参数,此时 Docker 会使用 docker-init 作为1号进程,帮你管理容器内子进程...root 0:00 sh 6 root 0:00 ps aux / # 可以看到容器启动如果没有添加 --init 参数,1 号进程就是 sh 进程。...root 0:00 ps aux 可以看到此时容器内的 1 号进程已经变为 /sbin/docker-init,而不再是 sh 了。...此时,我们使用 ps 命令查看一下主机上是否有 docker-proxy 进程: $ sudo ps aux |grep docker-proxy root 9100 0.0 0.0 290772

3500

docker 实用工具 gosu 和 su-exec 实践

其实,Docker 自动创建 volume 路径,应该再自动地把它修改为 container 内前台进程的 user:group。...Rs+ 02:22 0:00 ps aux 不管是su还是sudo,他们执行ps aux命令的 PID 编号都不为 1。...容器中虽然可以,但是这不是一个好的方案,容器里面 PID=1 的进程就是应用本身。因此可以使用gosu命令来切换用户执行命令。...可以避免操作失败还继续往下执行的问题。 exec:系统调用exec是以新的进程去代替原来的进程,但进程的 PID 保持不变,可以保证容器的主程序 PID=1。 脚本例 2: #!...脚本,可以容器运行时强制把目录权限修改成需要的权限,即使 docker 通过 root 用户初始化创建的 volume 挂载目录。

1.3K20

Docker入门

可以查看容器中运行的进程ps -aux用于查询容器中的进行进程 ? 接下来我们要干什么?安装一个软件包?...通过上述命令,我们可以Ubuntu宿主机上使用 vim 口令和语法了。 当你想退出,直接使用 exit 就退回宿主机的命令行了。 那么这个容器怎么样了?...容器的名称必须是唯一的,而且有效的名称能够帮助我们理清楚上下级关系,所以明明很重要!!! 重新启动已经停止的容器 例如,使用docker ps命令没有发现容器正在启动 ?...也可以直接根据container id进行启动,先用 docker ps -a 查看一下所有的container ?...执行命令后,我们看到容器内的所有进程,运行进程的用户,时间,执行指令 容器内部运行进程 Docker 1.3 之后,我们可以通过 docker exec 命令容器内部额外启动新进程

91120

白话容器基础(四):重新认识Docker容器

否则,就得把进程的启动命令加在后面: $ docker run -p 4000:80 helloworld python app.py 容器启动之后,可以使用 docker ps 命令看到: $ docker...实际上, setns() 之后看到的这两个网卡,正是在前面启动的 Docker 容器里的网卡。...宿主机上,你可以ps 指令找到这个 set_ns 程序执行的 /bin/bash 进程,其真实的 PID 是 28499: # 宿主机上 ps aux | grep /bin/bash root...《白话容器基础(三):深入理解容器镜像》的分享中,已经介绍过,当容器进程被创建之后,尽管开启了 Mount Namespace,但是执行 chroot(或 者 pivot_root)之前,容器进程一直可以看到宿主机上的整个文件系统...可是,如果你宿主机上查看该容器的可读写层,虽然可以看到这个 /test 目录,但其内容是空的(关于如何找到这个 AuFS 文件系统的路径,请参考上一次分 享的内容): ls /var/lib/docker

39930

Docker入门

可以查看容器中运行的进程ps -aux用于查询容器中的进行进程 ? 接下来我们要干什么?安装一个软件包?...通过上述命令,我们可以Ubuntu宿主机上使用 vim 口令和语法了。 当你想退出,直接使用 exit 就退回宿主机的命令行了。 那么这个容器怎么样了?...容器的名称必须是唯一的,而且有效的名称能够帮助我们理清楚上下级关系,所以明明很重要!!! 重新启动已经停止的容器 例如,使用docker ps命令没有发现容器正在启动 ?...也可以直接根据container id进行启动,先用 docker ps -a 查看一下所有的container ?...执行命令后,我们看到容器内的所有进程,运行进程的用户,时间,执行指令 容器内部运行进程 Docker 1.3 之后,我们可以通过 docker exec 命令容器内部额外启动新进程

85930

为什么你的docker容器刚启动就停了

可以看到,就是Dockerfile中指定的CMD那个进程,注意:如果你启动容器的时候,指定了命令,会覆盖CMD,也就是CMD是条默认启动的命令参数,如果启动容器指定了命令,会覆盖,当Dockerfile...中有多条CMD执行最后一条 这个进程其实在宿主机上有一个普通的用户进程ID ?...进程及其子进程作为另外一个分支,很显然这部分也是一个树形结构 当我们宿主机上kill掉这个进程ID,那么整个容器便会处于退出状态 这也就解释了上面为什么命令执行完之后,容器就退出了 认真的小伙伴从上面图中看到了...,上面说linux中PID1进程为所有用户进程的父进程,但是容器里面,通过ps命令看到进程的父进程都是“0”,这又是为什么呢?...前面提到,容器中的进程树实际上是宿主机进程树的一棵子树,或者说分支,那么我们宿主机上可以找到这颗子树的父进程 ?

2.8K10
领券