查看linux命名空间的指令,linux 命名空间的相关命令 - (sunznx) 振翅飞翔
17 July 2019
查看 docker 進程的 piddocker inspect -f {{.State.Pid}} xxx
lsnslsns -h
-n, --noheadings don't print headings
-p, --task print process namespaces
-t, --type namespace type (mnt, net, ipc, user, pid, uts)
# 列出進程號為 102044 的 net 和 mnt 命名空間
lsns -p 102044 -t net -t mnt
# 列出系統上所有 net 的命名空間
lsns -t net
nsenternsenter -h
--target
--mount[=]
--uts[=]
--ipc[=]
--net[=]
--pid[=]
--user[=]
lsns -p 102044
NS TYPE NPROCS PID USER COMMAND
4026531837 user 214 1 root /usr/lib/systemd/systemd --switched-root --system --deserialize 22
4026533663 ipc 2 100870 root /pause
4026533666 net 2 100870 root /pause
4026533727 mnt 1 102044 polkitd redis-server *:637
4026533728 uts 1 102044 polkitd redis-server *:637
4026533729 pid 1 102044 polkitd redis-server *:637
# NPROCS number of processes in the namespace
# PID lowest PID in the namespace
首先觀察到 102044 這個進程本身實際上只有 mnt, uts, pid 這三個命名空間,user, ipc, net 這三個命名空間是從其他進程共享過來的
# 進入命名空間,但不使用命名空間的 net 和 mnt 命名空間 (不使用 mnt 命名空間的好處是可以使用宿主機的命令行工具)
nsenter nsenter -t 102044 --ipc --uts --pid ps -aux
# 進入命名空間,并且使用命名空間的 net 和 mnt 命名空間
nsenter nsenter -t 102044 --ipc --uts --net --pid --mount ps -aux
nsenter nsenter -t 102044 \
--ipc=/proc/102044/ns/ipc --uts=/proc/102044/ns/uts \
--net=/proc/102044/ns/net --pid=/proc/102044/ns/pid \
--mount=/proc/102044/ns/mnt --user=/proc/102044/ns/user
ip netns 只進入網絡命令空間最簡單的方法# 鏈接單個 docker 容器
mkdir -p /var/run/netns
ln -s /proc/102044/ns/net /var/run/netns/102044
ip netns exec 102044 ip addr show
# 鏈接所有 docker 容器
ln -s /var/run/docker/netns/* /var/run/netns/
掛載 docker 目錄ls /proc/$PID/root
bindfs /proc/$PID/root /media
總結
以上是生活随笔為你收集整理的查看linux命名空间的指令,linux 命名空间的相关命令 - (sunznx) 振翅飞翔的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ps制作简单的泡泡
- 下一篇: Linux系统启动过程及其修复过程简析(