摘要:本人的學習筆記,主要是對我的第一本書從入門到實踐的學習記錄,并結(jié)合其他各種資源的學習,歡迎大牛們指點。最新的容器引入了容器如,容器不再僅僅是一個單純的運行環(huán)境。鏡像是基于聯(lián)合文件系統(tǒng)的一種層式的結(jié)構(gòu),由一系列指令一步步構(gòu)建處理。
本人的學習筆記,主要是對《我的第一本Docker書》、《Docker —— 從入門到實踐》的學習記錄,并結(jié)合其他各種資源的學習,歡迎大牛們指點。
容器簡介管理程序虛擬化(hypervisor virtualization, HV)是通過中間虛擬運行于物理硬件之上。而容器是直接運行在操作系統(tǒng)內(nèi)核之上用戶空間。因此,容器虛擬化運行也成為“操作系統(tǒng)級虛擬化”,容器技術(shù)可以讓多個獨立的用戶空間運行在同一臺宿主機上。
容器只能運行與底層宿主機相同或類似的操作系統(tǒng)。例如,可以在 Ubuntu 服務(wù)器中運行 RedHat Enterprise Linux,但是不能運行 Windows。
在超大規(guī)模的多租戶服務(wù)不熟、輕量級沙盒以及對安全要求不太高的隔離環(huán)境中,容器技術(shù)非常流行。比如“權(quán)限隔離監(jiān)牢”(chroot jail),它建立一個隔離的目錄環(huán)境來運行進程,如果權(quán)限隔離監(jiān)牢正在運行的進程被入侵者攻破,入侵者便會發(fā)現(xiàn)自己身陷“身陷囹圄”,因為權(quán)限不足被困在容器創(chuàng)建的目錄中,無非對宿主機進行進一步的破壞。
最新的容器引入了 Open、Solaris Zones、Linux 容器(如 lxc),容器不再僅僅是一個單純的運行環(huán)境。在自己的權(quán)限范圍內(nèi),容器更像是一個完整的宿主機。
Docker 得益于現(xiàn)代 Linux 內(nèi)核特性,如控件組(control group)、命名空間(namespace)技術(shù),容器和宿主機直接的隔離更加徹底,容器有獨立的網(wǎng)絡(luò)和存儲棧,還擁有自己的資源管理能力,是的同一臺宿主機中的多個容器可以友好地共存。
容器開銷低,和傳統(tǒng)的虛擬化以及半虛擬化(paravirtualization)相比,容器運行不需要模擬層(emulation layer)和管理層(hypervisor layer),二手使用操作系統(tǒng)的系統(tǒng)調(diào)用接口,著降低了運行單個容器所吸引的開銷,也是的宿主機中可以運行更多的容器。
但容器本身比較復雜,不易安裝,管理和自動化也很困難,而Docker就是為改變著一切而生的。
Docker簡介Docker是一個能把開發(fā)應(yīng)用程序自動不熟到容器的開源引擎。由Docker 團隊編寫,基于Apache 2.0 開源協(xié)議發(fā)行。
在 LXC 的基礎(chǔ)上 Docker 進行了進一步的封裝,讓用戶不需要去關(guān)心容器的管理,使得操作更為簡便。用戶操作 Docker 的容器就像操作一個快速輕量級的虛擬機一樣簡單。
Docker在虛擬化的容器執(zhí)行環(huán)境中增加了一個應(yīng)用部署引擎,該引擎的目標是提供一個輕量、快速的環(huán)境,能夠運行開發(fā)者的程序,并方便高效地將程序從開發(fā)者的筆記本部署到測試環(huán)境,然后再部署到生產(chǎn)環(huán)境。Docker機器簡潔,它所需要的全部環(huán)境只是一臺僅僅安裝了兼容版本的Linux內(nèi)核和二進制文件最小限的宿主機。而Docker的目標是提供一些這些東西:
提供簡單、輕量的建模方式Docker上手非???,只要幾分鐘就能把自己的程序“Docker化”(Dockerize)。Docker依賴于“寫時付至”(copy-on-write)
模型,是修改應(yīng)用程序也非常迅速,可以說是“隨心所至,代碼即改”。
隨后就可以創(chuàng)建容器來運行程序了。大多數(shù)Docker容器只需不到1秒鐘即可啟動。去除了管理程序的開銷,性能較高,可以同時運行多個容器。
職責的邏輯分離使用Docker,開發(fā)人員只需關(guān)系容器運行的程序,運維人員只需關(guān)系如何管理容器。加強了開發(fā)人員寫代碼的環(huán)境與程序部署的生產(chǎn)環(huán)境的一致性。
快速、高效的開發(fā)生命周期縮短代碼從開發(fā)、測試、部署、上下的周期,讓應(yīng)用可移植、易構(gòu)建、易協(xié)作。
鼓勵使用面向服務(wù)的架構(gòu)Docker推薦單個容器運行一個應(yīng)用程序或進程,形成分布式的應(yīng)用程序模型,這樣,程序或服務(wù)都可以表示為一系列內(nèi)部互聯(lián)的容器,使分布式部署應(yīng)用程序,擴展或調(diào)試程序標的簡單。當然也可以在一個容器里運行多個進程的應(yīng)用程序。
Docker 組件 鏡像Docker 鏡像就是一個只讀的模板。例如:一個鏡像可以包含一個完整的 ubuntu 操作系統(tǒng)環(huán)境,里面僅安裝了 Apache 或用戶需要的其它應(yīng)用程序。
鏡像是Docker生命周期中的“構(gòu)建”部分,可以用來創(chuàng)建 Docker 容器。
Docker 提供了一個很簡單的機制來創(chuàng)建鏡像或者更新現(xiàn)有的鏡像,可以當做容器的“源代碼”,它體積很小,便于分享、存儲、更新。用戶甚至可以直接從其他人那里下載一個已經(jīng)做好的鏡像來直接使用。
鏡像是基于聯(lián)合(union)文件系統(tǒng)的一種層式的結(jié)構(gòu),由一系列指令一步步構(gòu)建處理。例如:
添加一個文件
執(zhí)行一個命令
打開一個端口
容器Docker利用容器來運行應(yīng)用。Docker可以幫你構(gòu)建和部署容器,你只需要把自己的程序或服務(wù)打包到容器里即可。容器是基于鏡像啟動的,容器可以運行多個進程,所以可以認為,鏡像是Docker生命周期的構(gòu)建/打包階段,容器是啟動/執(zhí)行階段。
打個比方,容器是集裝箱,鏡像是貨物。
容器是從鏡像創(chuàng)建的運行實例。它可以被啟動、開始、停止、刪除。每個容器都是相互隔離的、保證安全的平臺。
可以把容器看做是一個簡易版的 Linux 環(huán)境(包括root用戶權(quán)限、進程空間、用戶空間和網(wǎng)絡(luò)空間等)和運行在其中的應(yīng)用程序。
總結(jié)起來,Docker容器就是:
一個鏡像格式
一系列標準的操作
一個執(zhí)行環(huán)境
倉庫(registry)注:鏡像是只讀的,容器在啟動的時候創(chuàng)建一層可寫層作為最上層。
倉庫用于保存用戶構(gòu)建的鏡像,分為公有、私有。Docker公司運營的公共倉庫叫Docker Hub,用戶可以在Docker Hub注冊賬號,保存并分享自己的鏡像。 國內(nèi)的公開倉庫有 Docker Pool等。用戶也可以在本地網(wǎng)絡(luò)內(nèi)創(chuàng)建一個私有倉庫。
當用戶創(chuàng)建了自己的鏡像之后就可以使用 push 命令將它上傳到公有或者私有倉庫,這樣下次在另外一臺機器上使用這個鏡像時候,只需要從倉庫上 pull 下來就可以了。
注:Docker 倉庫的概念跟 Git 類似,注冊服務(wù)器可以理解為 GitHub 這樣的托管服務(wù)。
本文地址
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/26367.html
摘要:一個鏡像可以放到另一個京廣線的頂部,位于下面的鏡像稱為父鏡像,最底部的稱為基礎(chǔ)鏡像。鏡像是基于聯(lián)合文件系統(tǒng)的一種層式的結(jié)構(gòu),由一系列指令一步步構(gòu)建處理。拉取鏡像使用命令啟動一個鏡像時,會檢查本地是否存在該鏡像。 什么是鏡像 Docker鏡像時由文件系統(tǒng)疊加而成,最底端是一個引導文件系統(tǒng),即bootfs,這很像典型的Linux/Unix的引導文件系統(tǒng)。Docker用戶幾乎永遠不會和引導...
摘要:,,當前使用的容器名為,為。守護式容器沒有交互式會話,適合運行應(yīng)用程序和服務(wù)。大多數(shù)時候是需要以守護式來運行容器。與之前創(chuàng)建的容器相比,沒有返回會話,只是返回了一個容器。刪除容器運行中的容器無法刪除,必須先停止。 windows 7, docker 1.3.2,當前使用的容器名為aoct,ID為614122c0aabb。 開啟已經(jīng)停止的容器 可以start + 容器名 $ sud...
摘要:郵件激活后,可以測試登錄這條命令會完成登錄,并將認證信息報錯起來供后面使用。所以先用命令退出容器,再運行命令命令中,指定了要提交的修改過的容器的目標鏡像倉庫鏡像名。提交的知識創(chuàng)建容器的鏡像與容器的當前狀態(tài)之間的差異部分,很輕量。 假期快要結(jié)束了,干點正事,接著Docker的學習。 構(gòu)建鏡像 構(gòu)建鏡像的兩種方法: 使用docker commit 命令 使用docker build...
摘要:如果查到的不是版的內(nèi)核,可以用來升級然后更新啟動加載器來加載新內(nèi)核完成安裝后,重啟宿主機來啟用新的內(nèi)核重啟之后,可以用確認是否運行了新版本內(nèi)核。如果是較低版本的系統(tǒng),需要先更新內(nèi)核。然后重復上面的步驟即可。 本人的學習筆記,主要是對《我的第一本Docker書》、《Docker —— 從入門到實踐》的學習記錄,并結(jié)合其他各種資源的學習。這次記錄了4種常見系統(tǒng)的Docker安裝方法,這些系...
摘要:運行容器使用命令啟動容器。指定鏡像時,會檢查本地是否存在鏡像?,F(xiàn)在進入到容器中,這是一個完整的系統(tǒng)。除此之外,并沒有其它的資源。本人的學習筆記,主要是對我的第一本書從入門到實踐的學習記錄,并結(jié)合其他各種資源的學習。 運行容器 使用run命令啟動容器。 下面的命令輸出一個 Hello World,之后終止容器: $ sudo docker run ubuntu:14.04 /bin...
閱讀 2915·2021-10-09 09:44
閱讀 3613·2019-08-30 15:54
閱讀 2223·2019-08-30 14:16
閱讀 2849·2019-08-30 13:09
閱讀 880·2019-08-30 13:08
閱讀 1356·2019-08-29 16:29
閱讀 1774·2019-08-26 13:57
閱讀 1981·2019-08-26 13:53