由于現(xiàn)在容器化技術(shù)的普及和廣泛的應(yīng)用,不管你工作中是否用到容器化技術(shù),docker名聲卻越來越響,這篇文章就讓我們簡單了解一下docker吧蜒什;
概念
了解docker之前我們應(yīng)該知道docker的三大組成部分
-
鏡像(images)
操作系統(tǒng)分為內(nèi)核和用戶空間。對于 Linux 而言疤估,內(nèi)核啟動后灾常,會掛載 root 文件系統(tǒng)為其提供用戶空間支持。而Docker 鏡像(Image)铃拇,就相當(dāng)于是一個(gè) root 文件系統(tǒng)钞瀑。
Docker 鏡像是一個(gè)特殊的文件系統(tǒng),除了提供容器運(yùn)行時(shí)所需的程序锚贱、庫仔戈、資源、配置等文件外拧廊,還包含了一些為運(yùn)行時(shí)準(zhǔn)備的一些配置參數(shù)(如匿名卷、環(huán)境變量晋修、用戶等)吧碾。鏡像不包含任何動態(tài)數(shù)據(jù),其內(nèi)容在構(gòu)建之后也不會被改變. -
容器 (Container)
鏡像(Image)和容器(Container)的關(guān)系墓卦,就像是面向?qū)ο蟪绦蛟O(shè)計(jì)中的 類 和 實(shí)例 一樣倦春,鏡像是靜態(tài)的定義,容器是鏡像運(yùn)行時(shí)的實(shí)體。容器可以被創(chuàng)建睁本、啟動尿庐、停止、刪除呢堰、暫停等(不會對鏡像產(chǎn)生任何影響) 抄瑟。
容器的實(shí)質(zhì)是進(jìn)程,但與直接在宿主執(zhí)行的進(jìn)程不同枉疼,容器進(jìn)程運(yùn)行于屬于自己的獨(dú)立的 命名空間皮假。前面講過鏡像使用的是分層存儲,容器也是如此骂维。
容器存儲層的生存周期和容器一樣惹资,容器消亡時(shí),容器存儲層也隨之消亡航闺。因此褪测,任何保存于容器存儲層的信息都會隨容器刪除而丟失。 -
倉庫 (Repository)
鏡像構(gòu)建完成后潦刃,可以很容易的在當(dāng)前宿主上運(yùn)行汰扭,但是, 如果需要在其它服務(wù)器上使用這個(gè)鏡像福铅,我們就需要一個(gè)集中的存儲萝毛、分發(fā)鏡像的服務(wù),Docker Registry就是這樣的服務(wù)滑黔。
一個(gè) Docker Registry中可以包含多個(gè)倉庫(Repository)笆包;每個(gè)倉庫可以包含多個(gè)標(biāo)簽(Tag);每個(gè)標(biāo)簽對應(yīng)一個(gè)鏡像略荡。所以說:鏡像倉庫是Docker用來集中存放鏡像文件的地方類似于我們之前常用的代碼倉庫庵佣。
通常,一個(gè)倉庫會包含同一個(gè)軟件不同版本的鏡像汛兜,而標(biāo)簽就常用于對應(yīng)該軟件的各個(gè)版本巴粪。我們可以通過<倉庫名>:<標(biāo)簽>的格式來指定具體是這個(gè)軟件哪個(gè)版本的鏡像。如果不給出標(biāo)簽粥谬,將以 latest 作為默認(rèn)標(biāo)簽.肛根。
docker常用命令
概念介紹完了我們來簡單了解一下docker常用的一些命令
- 通過此命令可以docker遠(yuǎn)程倉庫拉取鏡像到本地.
docker pull [options] NAME[:TAG] --options是拉去的一些參數(shù). name是拉取鏡像的名稱,:TAG表示是可選的
如果不選表明時(shí)latest,如果選擇表明是指定版本的.
- 查看所有鏡像
docker images [options] [REPOSITORY[:TAG]] --options是選項(xiàng),后面是指定鏡像的名稱.這個(gè)用的不多,可能
當(dāng)本地鏡像非常多的時(shí)候要指定查看某一個(gè)鏡像.
- 運(yùn)行一個(gè)鏡像
docker run [options] IMAGE[:TAG] [COMMAND] [ARG..] --IMAGE是鏡像的名字,COMMAND是運(yùn)行起來的時(shí)候要
執(zhí)行什么命令.ARG表示這條命令運(yùn)行需要的參數(shù).
docker run -d IMAGE 加了 -d 就是后臺運(yùn)行
docker run -d -p 8080:80 IMAGE -- p(小寫)是開放一個(gè)容器的端口到主機(jī)上,-P(大寫)是開放容器所有的端口
到主機(jī)上一個(gè)隨機(jī)的端口.
- 查看運(yùn)行的容器
docker ps
docker ps -a 查看所有容器
- 進(jìn)入容器內(nèi)部
docker exec -it container_id bash -i保證我們的輸入有效,即使在沒有detach的情況下也能運(yùn)行.-t表示將分配
給我們一個(gè)偽終端.我們將在偽終端輸入我們的內(nèi)容.后面跟著的是容器的id,即我們上面用ps查詢出來的id,這個(gè)id
可以少寫幾位,它會自動識別.
- 退出容器返回原來的系統(tǒng).
exit
- 啟動漏策、停止派哲、重啟、刪除容器
docker start container_id
docker stop container_id
docker restart container_id
docker rm container_id 刪除容器是先停掉容器在刪除掺喻,也可以強(qiáng)制刪除 rm -f 建議不這么做
- 刪除鏡像
docker rmi [IMAGE...]
- 創(chuàng)建當(dāng)前鏡像
docker build -t frontend . 前提有Dockerfile文件 .指的是當(dāng)前文件
下一篇我們介紹docker 安裝tomcat部署項(xiàng)目----------------docker tomcat應(yīng)用