docker run 中的特殊指令
因為我們要在docker中監控主機,但是預設情況下容器中是看不到主機的程序,也看不到主機的網路的…..
而且,容器中的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