#docker #namespaces #nsenter
Вопрос:
шаг 1: Запустите контейнер nginx
docker run -d -p 8000:80
шаг 2: проверьте разработку netowrk с помощью ncenter
nsenter -t $PID -n ip a
распечатка консоли
1: lo: lt;LOOPBACK,UP,LOWER_UPgt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 7: eth0@if8: lt;BROADCAST,MULTICAST,UP,LOWER_UPgt; mtu 1500 qdisc noqueue state UP group default link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0 valid_lft forever preferred_lft forever inet6 2001:db8:1::242:ac11:2/64 scope global nodad valid_lft forever preferred_lft forever inet6 fe80::42:acff:fe11:2/64 scope link valid_lft forever preferred_lft forever
случай1:
Но это не работает таким образом nsenter -t $PID -p ps -ef
В нем есть процесс печати пространства имен моего хоста
случай 2:
nsenter -t $PID -a ps -ef
nsenter: failed to execute ps: No such file or directory
случай3: Когда я прикреплю контейнер bash и установлю ps( docker exec -it $ContainerID bash
), он будет хорошо работать. ( nsenter -t $PID -a ps -ef
)
root@dev:/root# nsenter -t $PID -a ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 12:32 ? 00:00:00 nginx: master process nginx -g daemon off; nginx 31 1 0 12:32 ? 00:00:00 nginx: worker process nginx 32 1 0 12:32 ? 00:00:00 nginx: worker process nginx 33 1 0 12:32 ? 00:00:00 nginx: worker process nginx 34 1 0 12:32 ? 00:00:00 nginx: worker process root 536 0 0 13:29 ? 00:00:00 ps -ef
Я в замешательстве.