当前位置:   article > 正文

【避坑】宿主机能直接查看并杀死容器中进程(与--security-opt seccomp和--privileged参数没有关系)特权容器(secure computing mode)安全机制_容器内的进程在宿主机上可以看到,这个会影响宿主机吗

容器内的进程在宿主机上可以看到,这个会影响宿主机吗

背景

如下,我有kyai_rest容器,我进入它查看,有以下进程:

root@ubuntu:/userdata/testKYAI/ky_algo_manager# 
root@ubuntu:/userdata/testKYAI/ky_algo_manager# docker exec -it kyai_rest /bin/bash
root@5940438e0ee6:/build/libevent# 
root@5940438e0ee6:/build/libevent# 
root@5940438e0ee6:/build/libevent# 
root@5940438e0ee6:/build/libevent# ps
    PID TTY          TIME CMD
     20 pts/1    00:00:00 bash
     28 pts/1    00:00:00 ps
root@5940438e0ee6:/build/libevent# 
root@5940438e0ee6:/build/libevent# ps -ef 
UID          PID    PPID  C STIME TTY          TIME CMD
root           1       0  0 20:07 pts/0    00:00:00 /bin/bash /usr/local/bin/entrypoint.sh
root           7       1  0 20:07 pts/0    00:00:11 ./kyai_rest
root          20       0  1 21:20 pts/1    00:00:00 /bin/bash
root          29      20  0 21:20 pts/1    00:00:00 ps -ef
root@5940438e0ee6:/build/libevent# 

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

然后我切换到宿主机查看:

root@ubuntu:/userdata/testKYAI/ky_algo_manager# 
root@ubuntu:/userdata/testKYAI/ky_algo_manager# ps -ef | grep kyai_rest
root        2103    1964  0 20:07 pts/0    00:00:15 ./kyai_rest
root       19018   14638  0 21:57 pts/2    00:00:00 grep --color=auto kyai_rest
root@ubuntu:/userdata/testKYAI/ky_algo_manager# 
root@ubuntu:/userdata/testKYAI/ky_algo_manager# ps -ef | grep entrypoint
root        1964    1898  0 20:07 pts/0    00:00:00 /bin/bash /usr/local/bin/entrypoint.sh
root       19025   14638  0 21:57 pts/2    00:00:00 grep --color=auto entrypoint
root@ubuntu:/userdata/testKYAI/ky_algo_manager# 
root@ubuntu:/userdata/testKYAI/ky_algo_manager# 

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

发现容器中的进程都能查到,,,

查看这几个进程的父进程:

root@ubuntu:/userdata/testKYAI/ky_algo_manager# 
root@ubuntu:/userdata/testKYAI/ky_algo_manager# ps -ef | grep 1964
root        1964    1898  0 20:07 pts/0    00:00:00 /bin/bash /usr/local/bin/entrypoint.sh
root        2103    1964  0 20:07 pts/0    00:00:16 ./kyai_rest
root       19217   14638  0 21:59 pts/2    00:00:00 grep --color=auto 1964
root@ubuntu:/userdata/testKYAI/ky_algo_manager# 
root@ubuntu:/userdata/testKYAI/ky_algo_manager# 
root@ubuntu:/userdata/testKYAI/ky_algo_manager# ps -ef | grep 1898
root        1898       1  0 20:07 ?        00:00:02 /usr/bin/containerd-shim-runc-v2 -namespace moby -id 5940438e0ee6d98332d7b81e5a3a3b9314a5d14f288ad9a43a8101f175d165a5 -address /run/containerd/containerd.sock
root        1964    1898  0 20:07 pts/0    00:00:00 /bin/bash /usr/local/bin/entrypoint.sh
root       19293   14638  0 21:59 pts/2    00:00:00 grep --color=auto 1898
root@ubuntu:/userdata/testKYAI/ky_algo_manager# 
root@ubuntu:/userdata/testKYAI/ky_algo_manager# 

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

父进程是这个:root 1898 1 0 20:07 ? 00:00:02 /usr/bin/containerd-shim-runc-v2 -namespace moby -id 5940438e0ee6d98332d7b81e5a3a3b9314a5d14f288ad9a43a8101f175d165a5 -address /run/containerd/containerd.sock

然后我用kill或者kill -9杀死进程,比如kill -9 7,杀死kyai_rest进程,发现能杀掉,然后立马又以另一个进程号拉起来了Σ(っ °Д °;)っ

可能是我run容器的时候用了--restart=always参数。。。

但是这样也太离谱了吧,那我以名字匹配并杀死进程的时候,不是得特别小心,以防容器中有同名进程??

拓展

在宿主机上是可以看到并且直接操作容器中的进程的。

当在容器中启动一个进程时,该进程实际上是在宿主机的进程空间中运行的。因此,宿主机上的进程管理工具(如ps命令)可以看到容器内部的进程,并且可以使用宿主机上的工具来操作容器内部的进程,比如杀死进程。

这种行为是因为容器技术使用了Linux的命名空间(namespace)特性,将容器内部的进程隔离到一个独立的命名空间中,但这个命名空间与宿主机共享同一个进程表。因此,宿主机上的进程管理工具可以看到容器内部的进程。

与–security-opt seccomp和–privileged参数无关

--security-opt seccomp参数用于配置容器的seccomp(secure computing mode)安全机制。seccomp是Linux内核提供的一种安全机制,可以限制容器中进程对系统调用的访问。通过指定--security-opt seccomp=unconfined参数,可以禁用容器中的seccomp安全机制,使得容器中的进程可以执行更多的系统调用。

禁用seccomp可能会增加容器的风险,因为容器中的进程可以执行更多的系统调用,包括一些与进程管理相关的系统调用。因此,在使用--security-opt seccomp参数时,需要谨慎考虑容器中的进程是否可信,并确保容器的安全性。

--privileged参数用于将容器设置为特权容器。特权容器拥有更高的权限,可以绕过一些安全限制。当容器被设置为特权容器时,它将具有与宿主机相同的权限,包括对宿主机上的进程进行操作。

需要注意的是,设置容器为特权容器会降低容器的安全性,并增加容器被滥用的风险。因此,在使用--privileged参数时,需要谨慎考虑容器的安全性,并确保只有可信的进程才能运行在特权容器中。

(没看太明白,以后用到再说- -)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/461368
推荐阅读
相关标签
  

闽ICP备14008679号