docker學(xué)習(xí)記錄
什么是Docker
Docker 使用 Google 公司推出的 Go 語言 進行開發(fā)實現(xiàn)倒淫,基于 Linux 內(nèi)核的 cgroup失息,namespace骏庸,以及 AUFS 類的 Union FS 等技術(shù)戚啥,對進程進行封裝隔離杂数,屬于 操作系統(tǒng)層面的虛擬化技術(shù)宛畦。由于隔離的進程獨立于宿主和其它的隔離的進程,因此也稱其為容器揍移。最初實現(xiàn)是基于 LXC次和,從 0.7 版本以后開始去除 LXC,轉(zhuǎn)而使用自行開發(fā)的 libcontainer那伐,從 1.11 開始斯够,則進一步演進為使用 runC 和 containerd。
Docker 在容器的基礎(chǔ)上喧锦,進行了進一步的封裝翰撑,從文件系統(tǒng)恰起、網(wǎng)絡(luò)互聯(lián)到進程隔離等等膳犹,極大的簡化了容器的創(chuàng)建和維護席里。使得 Docker 技術(shù)比虛擬機技術(shù)更為輕便、快捷阵具。
下面的圖片比較了 Docker 和傳統(tǒng)虛擬化方式的不同之處碍遍。傳統(tǒng)虛擬機技術(shù)是虛擬出一套硬件后,在其上運行一個完整操作系統(tǒng)阳液,在該系統(tǒng)上再運行所需應(yīng)用進程怕敬;而容器內(nèi)的應(yīng)用進程直接運行于宿主的內(nèi)核,容器內(nèi)沒有自己的內(nèi)核帘皿,而且也沒有進行硬件虛擬东跪。因此容器要比傳統(tǒng)虛擬機更為輕便。
為什么要用Docker
高效利用資源
啟動非常迅速
環(huán)境的一致性 : 開發(fā)過程中的環(huán)境實在是多種多樣鹰溜,本地環(huán)境虽填,開發(fā)環(huán)境,測試環(huán)境曹动,線上環(huán)境等等環(huán)境斋日,環(huán)境稍有處理不當(dāng),就會發(fā)生我本地沒問題啊墓陈,測試怎么就好使呢這種情況
遷移起來非常方便恶守,只需要把鏡像上傳到倉庫第献,然后再拉下來就好
由于docker 是分層打包的,使得它更好擴展兔港,由于社區(qū)的存在庸毫,有一大批非常優(yōu)秀的景象存在供我們使用擴展
-
docker ps
查看運行的容器 -
docker inspect + 容器id
查看容器內(nèi)容
會看到許多有關(guān)容器的信息,會包含數(shù)據(jù)卷等信息押框。
-
docker exec -it gitlab-runner bash
進入容器