从docker stats
开始的下一个日志中,我看到很多容器的PID是相同的,为什么?
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS e12c382d6872 mesos-slave-58 0.10% 4.473MiB / 7.718GiB 0.06% 0B / 0B 0B / 8.19kB 12 50c03cb3fdf8 mesos-slave-55 0.08% 5.469MiB / 7.718GiB 0.07% 0B / 0B 36.9kB / 94.2kB 12 add886ad371e mesos-slave-52 0.09% 5.285MiB / 7.718GiB 0.07% 0B / 0B 184kB / 94.2kB 12 78fe107d106c mesos-slave-49 0.08% 6.742MiB / 7.718GiB 0.09% 0B / 0B 438kB / 61.4kB 12 b48f31fd0b18 mesos-slave-46 0.16% 17.28MiB / 7.718GiB 0.22% 0B / 0B 549kB / 61.4kB 33 1702bf0b014f mesos-slave-43 0.07% 5.301MiB / 7.718GiB 0.07% 0B / 0B 328kB / 65.5kB 12 0d25eacfd8b6 mesos-slave-40 0.10% 7.27MiB / 7.718GiB 0.09% 0B / 0B 2.13MB / 217kB 12 1b43e01ebdc1 mesos-slave-37 0.08% 4.93MiB / 7.718GiB 0.06% 0B / 0B 238kB / 61.4kB 12 6bc2d5f10851 mesos-slave-34 0.09% 6.285MiB / 7.718GiB 0.08% 0B / 0B 180kB / 4.1kB 12 2c5b6d1bd2f2 mesos-slave-31 0.08% 4.387MiB / 7.718GiB 0.06% 0B / 0B 197kB / 4.1kB 12 ad028f43b30b mesos-slave-28 0.07% 4.23MiB / 7.718GiB 0.05% 0B / 0B 139kB / 8.19kB 12 9d2d7e466150 mesos-slave-25 0.17% 18.09MiB / 7.718GiB 0.23% 0B / 0B 2.49MB / 184kB 34 d283840d591d mesos-slave-22 0.09% 6.789MiB / 7.718GiB 0.09% 0B / 0B 365kB / 36.9kB 12 62db3581467e mesos-slave-19 0.08% 4.645MiB / 7.718GiB 0.06% 0B / 0B 152kB / 36.9kB 12 605c26ea1428 mesos-slave-16 0.08% 5.922MiB / 7.718GiB 0.07% 0B / 0B 537kB / 65.5kB 12 a272df5e76b3 mesos-slave-13 0.07% 4.094MiB / 7.718GiB 0.05% 0B / 0B 45.1kB / 8.19kB 12 09cd22942e62 mesos-slave-10 0.07% 5.715MiB / 7.718GiB 0.07% 0B / 0B 147kB / 36.9kB 12 e13d2d953caa mesos-slave-7 0.12% 4.023MiB / 7.718GiB 0.05% 0B / 0B 8.19kB / 8.19kB 12 bb90f3ae407a mesos-slave-4 0.07% 3.969MiB / 7.718GiB 0.05% 0B / 0B 418kB / 8.19kB 12 34880c013c8c mesos-slave-1 0.07% 4.074MiB / 7.718GiB 0.05% 0B / 0B 47.9MB / 4.1kB 12
接下来是我的启动命令,其中包含一个循环,用于启动许多容器:
docker run -d --net=host --name=mesos-slave-$node_id --privileged \
-e MESOS_IP=$PC_IP \
-e MESOS_HOSTNAME=$PC_IP \
-e MESOS_PORT=$node_port \
-e MESOS_MASTER=zk://$SERVER_IP:2181/mesos \
-e MESOS_SWITCH_USER=0 \
-e MESOS_CONTAINERIZERS=docker,mesos \
-e MESOS_LOG_DIR=/var/log/mesos \
-e MESOS_WORK_DIR=/var/tmp/mesos \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /cgroup:/cgroup \
-v /sys:/sys \
-v $(which docker):/usr/bin/docker \
mesosphere/mesos-slave:1.3.0
但是如果我使用docker ps -q | xargs docker inspect --format '{{.State.Pid}}, {{.Name}}'
:
它显示:
10511, /mesos-slave-58 25155, /mesos-slave-55 29144, /mesos-slave-52 12581, /mesos-slave-49 26998, /mesos-slave-46 10444, /mesos-slave-43 25230, /mesos-slave-40 8532, /mesos-slave-37 22994, /mesos-slave-34 6443, /mesos-slave-31 20917, /mesos-slave-28 3267, /mesos-slave-25 8972, /mesos-slave-22 23268, /mesos-slave-19 28523, /mesos-slave-16 1191, /mesos-slave-13 7570, /mesos-slave-10 11568, /mesos-slave-7 17134, /mesos-slave-4 20608, /mesos-slave-1
似乎它们不同?如何理解它们?
答案 0 :(得分:1)
我认为您的第一个输出中的“ pids”列是容器中的进程数,而不是任何特定进程的进程ID。还要记住,在查看该容器时,每个容器都以其自己的pid空间启动,并且您通过docker run
或Dockerfile CMD
启动的主进程在该容器内的进程ID 1中,其权限和承担的责任;但是在主机上,Docker容器“只是”一个带有某些封装的进程,因此它将具有不同的主机pid。