1、查看该进程的 PID
以 nginx 为例
# ss -ntpl | grep nginx
LISTEN 0 511 *:88 *:* users:(("nginx",pid=28791,fd=8),("nginx",pid=28790,fd=8),("nginx",pid=28789,fd=8),("nginx",pid=28788,fd=8),("nginx",pid=28787,fd=8))
LISTEN 0 511 *:80 *:* users:(("nginx",pid=28791,fd=7),("nginx",pid=28790,fd=7),("nginx",pid=28789,fd=7),("nginx",pid=28788,fd=7),("nginx",pid=28787,fd=7))
或通过 ps -aux ,第二列就是 PID
ps -aux | grep nginx
root 28787 0.0 0.0 10560 1804 ? Ss 09:33 0:00 nginx: master process
100 28788 0.0 0.0 11076 2884 ? S 09:33 0:00 nginx: worker process
100 28789 0.0 0.0 11024 2500 ? S 09:33 0:00 nginx: worker process
100 28790 0.0 0.0 11056 2888 ? S 09:33 0:00 nginx: worker process
100 28791 0.0 0.0 11024 2500 ? S 09:33 0:00 nginx: worker process
root 31719 0.0 0.0 112812 976 pts/2 S+ 09:59 0:00 grep --color=auto nginx
2、查看进程的 cgroup
cat /proc/<pid>/cgroup
# cat /proc/28791/cgroup
11:perf_event:/docker/21d0cf703b4719cf1c86d1c0094773ff1c580e8fb039fc95b9021726dd2cb5c5
10:pids:/docker/21d0cf703b4719cf1c86d1c0094773ff1c580e8fb039fc95b9021726dd2cb5c5
9:freezer:/docker/21d0cf703b4719cf1c86d1c0094773ff1c580e8fb039fc95b9021726dd2cb5c5
8:memory:/docker/21d0cf703b4719cf1c86d1c0094773ff1c580e8fb039fc95b9021726dd2cb5c5
7:devices:/docker/21d0cf703b4719cf1c86d1c0094773ff1c580e8fb039fc95b9021726dd2cb5c5
6:cpuacct,cpu:/docker/21d0cf703b4719cf1c86d1c0094773ff1c580e8fb039fc95b9021726dd2cb5c5
5:hugetlb:/docker/21d0cf703b4719cf1c86d1c0094773ff1c580e8fb039fc95b9021726dd2cb5c5
4:net_prio,net_cls:/docker/21d0cf703b4719cf1c86d1c0094773ff1c580e8fb039fc95b9021726dd2cb5c5
3:blkio:/docker/21d0cf703b4719cf1c86d1c0094773ff1c580e8fb039fc95b9021726dd2cb5c5
2:cpuset:/docker/21d0cf703b4719cf1c86d1c0094773ff1c580e8fb039fc95b9021726dd2cb5c5
1:name=systemd:/docker/21d0cf703b4719cf1c86d1c0094773ff1c580e8fb039fc95b9021726dd2cb5c5
看到例如CPU、内存、磁盘都在 docker 中,因此此进程应该是运行在容器中。
3、确认容器服务
docker ps | grep <容器ID前4到10位>
# docker ps | grep 21d0c
21d0cf703b47 nginx "tini entrypoint.sh" 32 minutes ago Up 32 minutes mynginx