docker run 中的特殊指令
我们要在 docker 中监控主机,但是默认情况下容器中是看不到主机的进程,也看不到主机的网络的……而且,容器中的root其实只是一个叫 root 的普通用户……例如:[root@docker ~]# docker run -it centosUnable to find image 'centos:latest' locallyTrying to pull repository doc...
·
我们要在 docker 中监控主机,但是默认情况下容器中是看不到主机的进程,也看不到主机的网络的……
而且,容器中的root其实只是一个叫 root 的普通用户……
例如:
[root@docker ~]# docker run -it centos
Unable to find image 'centos:latest' locally
Trying to pull repository docker.io/library/centos ...
latest: Pulling from docker.io/library/centos
8ba884070f61: Pull complete
Digest: sha256:8d487d68857f5bc9595793279b33d082b03713341ddec91054382641d14db861
[root@0df145a906bf /]# ps
PID TTY TIME CMD
1 ? 00:00:00 bash
13 ? 00:00:00 ps
[root@0df145a906bf /]#
如果想改变这些,我们就需要加入以下特殊的启动参数,我们逐一介绍:
--privileged
: 简单理解的话就是能够让容器里边的root变成真正的root,能干root能干的事(比如容器中的root其实是无法执行mount命令的)
--pid=host
:这个选项的功能是让容器能够看到容器外面的主机的世界,也就是能通过ps aux 来查看主机上的进程
--net=host
:这个是禁用了网络隔离,让我们容器共享主机网络,容器的IP地址和主机是一个IP地址
--ipc=host
:这个是允许我们设置一些kernel的参数docker run –sysctl net.ipv4.ip_forward=1 someimage
(END)
更多推荐
已为社区贡献43条内容
所有评论(0)