宿主机进入容器命名空间

深入容器内部进行调试和检查,展示了从宿主机进入容器命名空间的全过程

命令执行流程总结

  1. 获取容器主进程 PID
docker inspect 31f5684037af | grep -i pid
# 结果:容器主进程 PID = 18616
  1. 验证进程存在
ps -ef | grep 18616
# 确认进程存在,是 CoreDNS 容器
  1. 查看进程的命名空间
lsns --task 18616
# 显示该进程属于哪些命名空间(cgroup、user、net、uts、ipc、mnt、pid)
        NS TYPE   NPROCS   PID USER COMMAND
4026531835 cgroup    468     1 root /usr/lib/systemd/systemd --switched-root --system --deserialize 18
4026531837 user      468     1 root /usr/lib/systemd/systemd --switched-root --system --deserialize 18
4026533187 net         2 18534 root /pause
4026533262 uts         2 18534 root /pause
4026533263 ipc         2 18534 root /pause
4026533340 mnt         1 18616 root /bin/coredns -conf /etc/coredns/Corefile
4026533341 pid         1 18616 root /bin/coredns -conf /etc/coredns/Corefile
  1. 进入所有命名空间
nsenter -t 18616 --all
# --all 参数表示进入该进程的所有命名空间
# 执行后,shell 直接进入了容器内部
  1. 容器内操作验证
ip addr show   # 查看容器网络(IP: 192.168.0.22)
ps aux         # 查看容器内进程(PID 从 1 开始)
ls             # 查看容器文件系统
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容