# Docker ## 目錄 * 小鯨魚的使用守則 * Container * 撰寫有效率的DockerFile * Docker compose * 如何幫image瘦身 * 小鯨魚的背景故事 * Network * Process * Control groups & Namespace ## 小鯨魚的背景故事 ### Process Container其實就是宿主機上面一種特殊的Procss,這個特殊的Process啟用多個Linux Namespace,使Container與其他環境隔離,比如創建新的PID Namespace,讓Container內部的PID是從1開始,另外這個Process所能夠使用的資源受到Cgroup所限制。 值得注意的是這代表Container其實是單進程的(後續新增的所有process都會以container的PID 1為parent process),所以你如果想在Container裡面同時執行兩個應用程式,就需要使用其他的程式來充當兩個應用程式的parent process(ex:pm2)。 >常常被問的問題:Container與虛擬機有什麼不同? 依樣畫葫蘆的回答:虛擬機上會有個名為Hypervisor的軟體去模擬Guest OS所需要的各種硬體,比如:CPU, momory, I/O等等,這樣我們在虛擬機裡面的時候看到當然也只會是他的文件與目錄。 相較之下Docker是使用Namespace來製造障眼法! Q: Linux 是怎麼創建一個新的process? TODO: 整理容器基礎、兩篇文章 --> K8s Intensive \ 整理Docker使用守則\ Docker Network --> Gogo 參考: [DOCKER基础技术:LINUX NAMESPACE(上)](https://coolshell.cn/articles/17010.html)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up