1

在 ubuntu 中有一个叫做nsenter的实用程序。nsenter 是一个允许进入命名空间的小工具。它将进入您的 docker 容器。我想从 docker 容器控制主机。如何使用 nsenter 实用程序从容器连接主机?

4

1 回答 1

1

nsenter允许您加入目标进程 ID (PID) 的 Linux 命名空间。

首先,运行一个容器,将您的主机 PID 命名空间与--pid=host. 容器必须具有特权--privileged,否则执行nsenter将失败并出现“不允许操作”错误。容器通过执行来无限期地运行tail -f /dev/null

docker run --pid=host --privileged --name admin-container ubuntu:latest tail -f /dev/null

然后使用 exec 进入容器nsenter,输入主机的第一个 init 进程 (PID = 1) 的文件系统、ipc、utc 和网络命名空间:

docker exec -it admin-container nsenter --target 1 --mount --uts --ipc --net /bin/bash

环顾四周,您会注意到,您在主机上。

于 2021-11-09T08:38:20.600 回答