当前位置: 首页 > 面试题库 >

在主机上执行“ ps aux”时,为什么可以看到Docker容器进程?

勾喜
2023-03-14
问题内容

从主持人:

ps aux | grep java

me@my-host:~/elastic-search-group$ ps aux | grep java
smmsp    20473  106  6.3 4664740 257368 ?      Ssl  17:48   0:09 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -Xms256m -Xmx1g -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -XX:+DisableExplicitGC -Dfile.encoding=UTF-8 -Djna.nosys=true -Des.path.home=/usr/share/elasticsearch -cp /usr/share/elasticsearch/lib/elasticsearch-2.3.4.jar:/usr/share/elasticsearch/lib/* org.elasticsearch.bootstrap.Elasticsearch start

然后执行到容器中:

docker exec -it 473 /bin/bash

并查看过程:

root@473c4548b06f:/usr/share/elasticsearch# ps aux | grep java                                                                                                               
elastic+     1 14.0  6.3 4671936 257372 ?      Ssl  17:48   0:10 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -Xms256m -Xmx1g -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -XX:+DisableExplicitGC -Dfile.encoding=UTF-8 -Djna.nosys=true -Des.path.home=/usr/share/elasticsearch -cp /usr/sh

从主持人:

sudo kill -9 20473

最终杀死了Docker容器。

现在,我可能会弄错了,但我认为存在完全的流程隔离吗?这应该流向主机吗?


问题答案:

容器与主机隔离,主机与容器未隔离。因此,从主机可以看到容器内使用的文件,网络连接,网络接口,进程等。但是从容器中,您只能看到容器中的内容(除非在run命令中配置了任何特权提升)。



 类似资料:
  • 但是,如何从Docker for Mac上的容器中可靠地找到主机IP呢?该IP何时可能更改? 编辑:副本https://stackoverflow.com/a/24716645/6309

  • 问题内容: Docker容器中有多个进程正在运行,它们的PID在容器名称空间中是隔离的,是否有办法找出Docker主机上的PID是什么? 例如,有一个Apache Web服务器在Docker容器中运行(我使用Docker Hub中的 Apache + PHP映像),而Apache在启动时会在容器内创建更多工作进程。这些工作进程实际上正在处理传入的请求。要查看这些进程,我在docker容器中运行:

  • 我已经创建并将php-apache容器与MYSQL容器链接起来。但是当我试图从php文件中使用PDO建立连接时,我得到了错误。有人知道怎么修好它吗?多谢了。 PDO错误: 致命错误:未捕获的PDOException:PDO::__Construct():php_network_getAddress:getaddrinfo失败:名称或服务在/var/www/html/index.php:3 Stac

  • 我已经对两项服务进行了任务整理: < li>web前端(包含在端口3000上访问的angular中的GUI) < li >后端(具有从端口8111上访问的网页中提取数据的puppeteer依赖性) 以下是后端的简化版本dockerfile: 它们用相互通信。 后端有两种运行提取的模式(headless和headful)。无头提取成功地与这些dockerized服务一起工作。 在本地运行后端时,令人

  • 问题内容: 说,如果我在Docker容器中使用此命令。 这里的本地主机指的是什么?主机的IP还是Docker容器自己的IP? 问题答案: 从容器内部开始 ,始终引用当前容器。它永远不会引用另一个容器,也永远不会引用物理系统中运行的不在同一容器中的任何其他内容。建立与数据库主机的出站连接或将其配置为数据库主机通常没有用。 从主机系统上的Shell中 ,可以指代在Docker之外的系统上运行的守护程序

  • 我封装了一个应用程序,它是自动化Selenium测试的测试驱动程序。Selenium服务器(也称为Selenium Hub)运行在另一个容器中,以及本地主机4444下的Firefox节点。但我的应用程序无法访问它: 我通过docker-comush启动了这些容器: 我猜我的docker作文有错,但我想不出来。请帮忙!顺便说一句:我在Windows 7上运行,使用Docker和一个流浪的虚拟机。在我