如何使用 nsenter 实用程序从容器连接主机

How to connect host machine from container using nsenter utility

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

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

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

无限期地保持 运行ning
docker run --pid=host --privileged --name admin-container ubuntu:latest tail -f /dev/null

然后使用 nsenter 执行到容器中,进入主机第一个初始化进程 (PID = 1) 的文件系统、ipc、utc 和网络名称空间:

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

环顾四周,您会发现,您在主机上。