docker進程隔離是什么意思

docker中,進程隔離是將每個容器都運行在自己的進程環境中的意思;Docker主要就是借助linux內核技術Namespace來做到隔離的,“Linux Namespaces”機制提供一種資源隔離方案。

docker進程隔離是什么意思

本教程操作環境:linux7.3系統、docker19.03版、Dell G3電腦。

docker進程隔離是什么意思

進程隔離:每個容器都運行在自己的進程環境中

隔離原理

Docker主要就是借助 Linux 內核技術Namespace來做到隔離的,Linux Namespaces機制提供一種資源隔離方案。PID,IPC,Network等系統資源不再是全局性的,而是屬于某個特定的Namespace。

每個namespace下的資源對于其他namespace下的資源都是透明,不可見的。因此在操作系統層面上看,就會出現多個相同pid的進程。系統中可以同時存在兩個進程號為0,1,2的進程,由于屬于不同的namespace,所以它們之間并不沖突。而在用戶層面上只能看到屬于用戶自己namespace下的資源,例如使用ps命令只能列出自己namespace下的進程。這樣每個namespace看上去就像一個單獨的Linux系統。

docker進程隔離是什么意思

進程隔離

啟動一個容器

docker run -it -p 8080:8080 --name pai-sn pai-sn:snapshot /bin/bash

-it 交互啟動,-p端口映射 ,–name 容器名稱 后面是鏡像名稱,打開shell,啟動之后就進入到了容器
查看進程

ps -ef

docker進程隔離是什么意思
使用top命令查看進程資源

docker進程隔離是什么意思
在宿主機查看下當前執行容器的進程ps -ef|grep pai-sn

docker進程隔離是什么意思
由此,我們可以知道docker run命令啟動的只是一個進程,它的pid是4677。而對于容器程序本身來說,它被隔離了,在容器內部都只能看到自己內部的進程。Docker是借助了Linux內核的Namespace技術來實現的。

推薦學習:《docker視頻教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊11 分享