У меня есть очень простой контейнер Ubuntu с работающим apache. Когда я начал контейнер с:
$ sudo docker run -p 192.168.189.134:80:80 -d wnoorduin/apache
где 192.168.189.134 - мой IP-адрес, и, глядя на процессы на хосте докера, я вижу:
$ sudo ps -ef | grep docker root 35701 1 0 13:46?
00:00:14 /usr /bin /docker root демон 37825 35701 0 14:47?
00:00:00 docker-proxy -proto tcp -host-ip 192.168.189.134 -host-port 80 -container-ip 172.17.0.2 -container-port 80 root 37946 3465 0 14:53 pts /0 00:00:00 grep --color = auto dockerroot @ willems-vm:/# ps -ef | grep apache root 37832 35701 0 14:47? 00:00:00 /bin /sh /usr /sbin /apache2ctl -D FOREGROUND root
37856 37832 0 14:47? 00:00:00 /usr /sbin /apache2 -D ПРЕДИСЛОВИЕ www-data 37857 37856 0 14:47? 00:00:00 /usr /sbin /apache2 -D ПРЕДИСЛОВИЕ www-data 37858 37856 0 14:47? 00:00:00 /usr /sbin /apache2 -D ЗАГЛУШЕННЫЙ корень 37950 3465 0 14:54 pts /0
00:00:00 grep --color = auto apache
а также:
root @ willems-vm:/# ps -efZ | grep docker не ограничен
root 35701 1 0 13:46? 00:00:14 /usr /bin /docker неограниченный корень демона 37825 35701 0 14:47?
00:00:00 docker-proxy -proto tcp -host-ip 192.168.189.134 -host-port 80 -container-ip 172.17.0.2 -container-port 80 docker-default
root 37832 35701 0 14:47? 00:00:00 /bin /sh /usr /sbin /apache2ctl -D FOREGROUND docker-default
root 37856 37832 0 14:47? 00:00:00 /usr /sbin /apache2 -D ЗАПРОС docker-default www-data 37857 37856 0 14:47? 00:00:00 /usr /sbin /apache2 -D ЗАПРОС docker-default www-data 37858 37856 0 14:47? 00:00:00 /usr /sbin /apache2 -D FOREGROUND неограниченный корень 37952 3465 0 14:55 pts /0 00:00:00 grep --color = auto docker
Поэтому, поместив Z SELinux в это, я могу подтвердить, что процесс apache2 идет из контейнера Docker. В мои хорошие дни, когда я настраивал контейнеры Solaris, было действительно возможно увидеть имя зоны (это называлось зоной) в списке ps (если я помню, это был также ps -efZ, но Z имел тогда совершенно другое значение).
При запуске одного контейнера это не так катастрофично, но при запуске 10 вы не можете отследить процесс до контейнера. Итак: Есть ли способ сделать это на хосте докера, без док-станции?