摘要:最近看了這篇文章,了解到容器內(nèi)的一個進程對應(yīng)于宿主機器上的一個進程。在宿主機器上的進程擁有者和在容器內(nèi)的進程擁有者都是,同理,我們已經(jīng)驗證了第二點。
最近看了這篇文章:Understanding how uid and gid work in Docker containers,了解到:
docker容器內(nèi)的一個進程對應(yīng)于宿主機器上的一個進程。
容器內(nèi)的進程,與相對應(yīng)的宿主進程,由相同的uid、gid擁有。也就是說,如果在容器內(nèi)主進程屬于用戶uid=1000,那么這個容器進程在宿主機器上也屬于用戶uid=1000。容器內(nèi)的用戶uid=1000就是容器外的用戶uid=1000,也是其他容器內(nèi)的用戶uid=1000。上面鏈接的文章介紹了很多這樣的例子。
讓我們來驗證這兩點。
docker容器內(nèi)的一個進程對應(yīng)于宿主機器上的一個進程在我的Ubuntu上沒有安裝、更沒有運行mysql,但是我通過docker啟動了一個mysql容器。此時,我能夠通過在宿主機器上的命令行ps aux | grep mysql看到mysql的進程:
我們能在宿主機器上看到mysqld創(chuàng)建的進程,驗證了第一點。
現(xiàn)在我們驗證一下【在宿主機器上的進程擁有者uid、gid】是不是等于【在容器內(nèi)的進程擁有者uid、gid】。
在宿主機器上的進程擁有者uid、gid在上面的ps aux | grep mysql輸出中,顯示進程ID是25138,【容器進程擁有者的用戶名】是guest-v+,看不到uid。并且,我們無法通過id guest-v+查看用戶信息,因為這個用戶名是虛擬的。
在搜索一番以后,我發(fā)現(xiàn)ps命令非常強大,幾乎能給你所有需要的進程信息!設(shè)置幾個參數(shù)就能讓它輸出我們想要的進程信息:
ps --pid 25138 -O uid,uname,gid,group,ppid
上面的參數(shù)表示,我要查看pid為25138的進程,并且除了默認的列以外,多展示幾列:uid,uname,gid,group,ppid。
輸出如下:
終于找到了!【在宿主機器上的進程擁有者uid】是999,groupid也是999。(PPID(parent pid)展示了父進程的pid,有了它,你可以繼續(xù)查看父進程的信息)
在ps manuals中,能找到這個命令的更多用法、更多可以展示的列:在容器內(nèi)的進程擁有者uid、gid
接下來,讓我們查看【在容器內(nèi)的進程擁有者uid】。
通過docker exec -it 容器名稱 bash,在容器內(nèi)運行一個bash。
根據(jù)我之前的博客,執(zhí)行apt-get update && apt-get install procps,在容器內(nèi)安裝ps(大部分容器為了精簡,沒有預裝ps)。
使用ps ax -O uid,uname,gid,group,ppid,查看容器內(nèi)的所有進程:
可以看到,在容器內(nèi),msqld進程的擁有者uid也是999,groupid也是999。
【在宿主機器上的進程擁有者uid】和【在容器內(nèi)的進程擁有者uid】都是999,gid同理,我們已經(jīng)驗證了第二點。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/27330.html
摘要:本文從定義,作用,技術(shù)架構(gòu),安裝和使用等全方位帶你看懂。最后,于開發(fā)者而言提供了一種開發(fā)環(huán)境的管理辦法,與測試人員而言保證了環(huán)境的同步,于運維人員提供了可移植的標準化部署流程。顯示上圖內(nèi)容就表明安裝完成。 作者丨唐文廣:騰訊工程師,負責無線研發(fā)部地圖測試。 導語:Docker,近兩年才流行起來的超輕量級虛擬機,它可以讓你輕松完成持續(xù)集成、自動交付、自動部署,并且實現(xiàn)開發(fā)環(huán)境、測試環(huán)...
摘要:本文從定義,作用,技術(shù)架構(gòu),安裝和使用等全方位帶你看懂。如圖中左邊紅框中和右邊的紅框中都唯一表示為同一個鏡像。最后,于開發(fā)者而言提供了一種開發(fā)環(huán)境的管理辦法,與測試人員而言保證了環(huán)境的同步,于運維人員提供了可移植的標準化部署流程。 作者丨唐文廣:騰訊工程師,負責無線研發(fā)部地圖測試。 導語:Docker,近兩年才流行起來的超輕量級虛擬機,它可以讓你輕松完成持續(xù)集成、自動交付、自動部署...
摘要:問題產(chǎn)生原因最近在使用的時候經(jīng)常遇到權(quán)限問題。如果權(quán)限不夠,就會出現(xiàn)問題。從上圖可以看到,主進程的擁有者是,可以讀寫任何文件,權(quán)限肯定沒問題。要解決這個問題,其實就是讓用戶有權(quán)讀寫以及其中的文件。 問題產(chǎn)生原因 最近在使用docker的時候經(jīng)常遇到權(quán)限問題。通過這個stackoverflow回答,我明白了問題出現(xiàn)的主要原因:Docker在進行bind mount的時候,或者在進行COP...
摘要:而實際上在宿主機中也會同步啟動一個進程,其在宿主機中是。如果其中的某一個容器正在執(zhí)行密集型的任務(wù),那么它就會影響其他容器的任務(wù)執(zhí)行效率,導致多個容器相互影響并且搶占資源。 作者:榮幸 為什么是容器 如果問你現(xiàn)在最熱門的服務(wù)器端技術(shù)什么?想必很多人會不假思索的說是容器! 容器技術(shù)實際上并不是一個新鮮的名詞,現(xiàn)在大家一提到容器馬上想到的就是Docker,但是容器這個詞并不是Docker公司...
摘要:發(fā)現(xiàn)問題之后,相應(yīng)的解決方法也很簡單把當前目錄的擁有者賦值給,再啟動容器就一切正常了。這時我們已經(jīng)可以知道容器的本地數(shù)據(jù)卷中文件目錄的權(quán)限是和宿主機上一致的,只是在容器和宿主機中可能映射為不同的用戶組名稱。 Volume數(shù)據(jù)卷是Docker的一個重要概念。數(shù)據(jù)卷是可供一個或多個容器使用的特殊目錄,可以為容器應(yīng)用存儲提供有價值的特性: 持久化數(shù)據(jù)與容器的生命周期解耦:在容器刪除之后數(shù)據(jù)卷...
閱讀 1505·2021-11-17 09:33
閱讀 1269·2021-10-11 10:59
閱讀 2902·2021-09-30 09:48
閱讀 1912·2021-09-30 09:47
閱讀 3035·2019-08-30 15:55
閱讀 2347·2019-08-30 15:54
閱讀 1500·2019-08-29 15:25
閱讀 1655·2019-08-29 10:57