一.Docker是什么?
(1)Docker是在Linux容器里運行應用的開源工具,是一種輕量級的“虛擬機”
Logo設計為藍色鯨魚,鯨魚可以看作為宿主機,上面的集裝箱可以理解為相互隔離的容器,每個集裝箱中包含自己的應用程序。
(2)Docker和虛擬機的區別
作為一種輕量級的虛擬化方式,Docker 與傳統虛擬機相比具有顯著的優勢。
Docker之所以擁有眾多優勢,與操作系統虛擬化自身的特點是分不開的。傳統虛擬機需要有額外的虛擬機管理程序和虛擬機操作系統層,而Docker容器是直接在操作系統層面之上實現的虛擬化,
如圖:
(3)Docker的使用場景
現在開發者需要能方便地創建運行在云平臺上的應用,必須要脫離底層的硬件,同時還需要任何時間地點可獲取這些資源,這正是Docker所能提供的。Docker 的容器技術可以在一臺主機 上輕松為任何應用創建一個輕量級的、可移植的、自給自足的容器。通過這種容器打包應用程序,意味著簡化了重新部署、調試這些瑣碎的重復工作,極大地提高了工作效率。
二.Docker的核心概念及安裝
(1)鏡像
Docker的鏡像(mage) 是創建容器的基礎,類似虛擬機的快照
可以理解為是一一個面向Docker容器引擎的只讀模板。比如,一個鏡像可以是一個完整的 CentOS 操作系統環境,稱為-個CentOS
鏡像;可以是一個安裝了MySQL的應用程序,稱為一個MySQL鏡像,等等。
(2)容器
Dooker的容器(Container) 是從鏡像創建的運行實例。它可以被啟動、停止和刪除。所創建的每一個容器都是相互隔離、互不可見,可以保證安全性的平臺??梢园讶萜骺醋饕粋€簡易版的Linux環
境,Docker 利用容器來運行和隔離應用。
(3)倉庫
Docker倉庫(Repository) 是用來集中保存鏡像的地方,當創建了自己的鏡像之后,可以使用push命令將它上傳到公有倉庫(Public) 或者私有倉庫(Private), 這樣一來當 下次要在另外一臺機器上使用這個鏡像時,只需要從倉庫上拉取下來就可以了。
(4)安裝Docker
主機有網的話可以直接安裝,
配置yum
[root@localhost~]#rm-rf/etc/yum.repos.d/*[root@localhost~]#vim/etc/yum.repos.d/a.repo[aaa]name=asdbaseurl=file:///mediagpgcheck=0[root@localhost~]#mount/dev/cdrom/media/[root@localhost~]#yum-yinstalldocker
安裝完成可以啟動Docker,并設置開機自啟
[root@localhost~]#systemctlstartdocker[root@localhost~]#systemctlenabledockerCreatedsymlinkfrom/etc/systemd/system/multi-user.target.wants/docker.serviceto/usr/lib/systemd/system/docker.service.
[root@localhost~]#dockerversion//查看Docker版本Client:Version:1.13.1APIversion:1.26Packageversion:docker-1.13.1-75.git8633870.el7.centos.x86_64Goversion:go1.9.4Gitcommit:8633870/1.13.1Built:FriSep2819:45:082018OS/Arch:linux/amd64Server:Version:1.13.1APIversion:1.26(minimumversion1.12)Packageversion:docker-1.13.1-75.git8633870.el7.centos.x86_64Goversion:go1.9.4Gitcommit:8633870/1.13.1Built:FriSep2819:45:082018OS/Arch:linux/amd64Experimental:false
分為服務端與客戶端
三.Docker鏡像操作
(1)搜索鏡像(前提電腦有網)
[root@localhost~]#dockersearchdhcpINDEXNAMEDESCRIPTIONSTARSOFFICIALAUTOMATEDdocker.iodocker.io/networkboot/dhcpdSuitableforrunningaDHCPserverforyou...43[OK]docker.iodocker.io/joebiellik/dhcpdDHCPserverrunningonAlpineLinux15[OK]docker.iodocker.io/gns3/dhcpADHCPcontainerforGNS3usingdnsmasq3[OK]docker.iodocker.io/instantlinux/dhcpd-dns-pxeServeDNS,DHCPandTFTPfromasmallAlpi...2[OK]docker.iodocker.io/ictu/dhcpd-tftpddhcpdtftpdcontainer1[OK]docker.iodocker.io/marcelwiget/dhcptesterSimpledhcpclientsimula
(2)獲取鏡像
[root@localhost~]#dockerpulldocker.io/network/dhcpd//下載上面最開頭的dhcp
還有一種就是插入已經下載好的dhcp
做成光盤插入到主機中
[root@localhost~]#mount/dev/cdrom/media/[root@localhost~]#cd/media/[root@localhostmedia]#lsdhcp[root@localhostmedia]#cpdhcp/[root@localhostmedia]#
[root@localhost/]#dockerload<dhcpfccbfa2912f0:Loadinglayer116.9MB/116.9MBe1a9a6284d0d:Loadinglayer15.87kB/15.87kBac7299292f8b:Loadinglayer14.85kB/14.85kBa5e66470b281:Loadinglayer5.632kB/5.632kBa8de0e025d94:Loadinglayer3.072kB/3.072kBe2e29955c5aa:Loadinglayer12.7MB/12.7MB12e14fab4dd4:Loadinglayer49.15kB/49.15kB47bdfd3bbf39:Loadinglayer4.096kB/4.096kBLoadedimage:docker.io/networkboot/dhcpd:latest
將鏡像下載到本地
(3)查看鏡像信息
[root@localhost/]#dockerimagesREPOSITORYTAGIMAGEID//鏡像IDCREATEDSIZEdocker.io/networkboot/dhcpdlatest6f98b6b9b48619monthsago125MB
REPOSITORY: 鏡像屬于的倉庫。
TAG: 鏡像的標簽信息,標記同一個倉庫中的不同鏡像。
IMAGE ID: 鏡像的唯一ID號,唯一標識了該鏡像。
CREATED: 鏡像創建時間。
CREATED: 鏡像創建時間。
[root@localhost/]#dockerinspect6f98b6b9b486\查看鏡像ID詳細信息
鏡像的詳細信息中包括創建時間、系統版本.主機名.域名.用戶.卷.標簽.操作系統.設備ID等各種信息。
[root@localhost/]#dockertagdocker.io/networkboot/dhcpddhcp:dhcp第一個dhcp:名稱第二個dhcp:標簽
(4)刪除鏡像
[root@localhost/]#dockerrmidhcp:dhcpUntagged:dhcp:dhcp
四.Docker容器操作
容器是Docker的另一一個核心概念,簡單來說,容器是鏡像的一個運行實例,是獨立運行的一個或一組應用及它們所必需的運行環境,包括文件系統、系統類庫. shell 環境等。鏡像是只讀模板,而容器會給這個只讀模板一個額外的可寫層
(1)容器的創建與啟動
[root@localhost/]#dockercreate-itdocker.io/networkboot/dhcpd/bin/bashe392026ddd186d01cbd3306acae15f2f197dc9874a84ea241d347c7fe20a0946
常用選項: -i表示讓容器的輸入保持打開: -t表示讓Docker分配一個偽終端。
[root@localhost/]#dockerps-a\\查看所有容器運行狀態CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMESe392026ddd18docker.io/networkboot/dhcpd"/entrypoint.sh/b..."AboutaminuteagoCreatedelegant_goldwasser
輸出信息顯示容器的ID號.加載的鏡像.運行的程序.創建時間、目前所處的狀態、端口映射.容器名稱等。其中狀態-欄為Created表示當前的容器是新創建的并處于停止狀態。
[root@localhost/]#dockerstarte392026ddd18\\啟動容器,上面的IDe392026ddd18
容器啟動后,可以看到容器狀態一欄已經變為UP,表示容器已經處于啟動狀態。
(2)容器的運行與終止
[root@localhost/]#dockerstop容器的ID號
(3)容器的進入
[root@localhost/]#dockerexec-ite392026ddd18/bin/bashroot@e392026ddd18:/#
用戶可以通過所創建的終端來輸入命令,通過exit命令退出容器.
root@e392026ddd18:/#lsbincoreentrypoint.shhomelib64mntprocrunsrvtmpvarbootdevetclibmediaoptrootsbinsysusrroot@e392026ddd18:/#exitexit
(4)容器的導出導入
容器是最小化,導致一些命令不能使用,所以就要從容器里面導出到本地來設置,設置完再導入進容器就可以。
導出命令如下:
[root@localhost/]#dockerexporte392026ddd18>/etc/dhcp/dhcpd.conf
亂數字為容器的ID號
把dhcp主配置文件導出來配置,
導入命令如下:
[root@localhost/]#dockerimport/etc/dhcp/dhcpd.conf>e392026ddd18
(5)容器的刪除
可以使用dockerrm命令將一個已經終止狀態的容器進行刪除。
一個鏡像可以包含多個容器
[root@localhost/]#dockerstope392026ddd18\\先停止e392026ddd18[root@localhost/]#dockerrme392026ddd18\\再刪除e392026ddd18[root@localhost/]#dockerps-aCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES
五.Docker資源控制
Cgroup是Controlgroup的簡寫,是Linux內核提供的一種限制所使用物理資源的機制,這些資源主要包括CPU.內存、blkio。 下面就這3個方面來談一下Docker是如何使用Cgroup機制進行管理的。
(1)限制CPU使用速率
例如,將容器60ff4594cc73的CPU使用設置為20000,設置CPU的使用率限定為20%:
[root@localhost~]#echo20000>/sys/fs/cgroup/cpu/system.slice/docker-60ff4594cc73b5474477636b25b41f16e166a3606aed226522d420d0c296990d.scope/cpu.cfs_quota_us
(2)多任務按比例分享CPU
例如,運行3個新建容器A. B、C,占用CPU資源的比例為1:1:2就可以這樣執行:
[root@localhost/]#dockerrun-tid--cpu-shares1024+鏡像A[root@localhost/]#dockerrun-tid--cpu-shares1024+鏡像B[root@localhost/]#dockerrun-tid--cpu-shares2048+鏡像C
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Docker和虛擬機的區別有哪些”這篇文章對大家有幫助,同時也希望大家多多支持本站,關注本站行業資訊頻道,更多相關知識等著你來學習!
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
在實際的經濟生活中,中央銀行的三大法寶一般認為是存款準備金政策、公開市場業務政策以及再貼現政策。利用以上這三三大法寶,中央銀行需要對市場金融秩序進行宏觀調控,實現對市場內信用總量進行統一的收縮或者擴張操作。央銀三大法寶的詳情介紹1、存款準備金政策:中央銀行通過對存款準備金率進行調控,從而影響金融機構的實際影響能力,間接的來調控市場內貨幣的供應總量;2、公開市場業務政策:公開市場業務政策即意味著中央...
每克。目前白銀最新報價為人民幣/克23一般回收會折價6成左右。s999純銀產品分為銀料價格和銀的手工費兩部分,基本上,999千足銀大概17,一般都在10幾塊錢到30多塊之間。銀飾品是不按照克來計算價格的,你好,因此都是按件”賣,工藝非常的美,可能是品牌價值高的緣故吧。這種價格為加工,可能會達到30左右每克,加工費根據銀的工藝不同價格不同。999才是足銀,至于你說的30元,比如今天國際黃...
(資料圖片僅供參考)有關于手機QQ可顯示對方實時電量嗎方面的知識,小編在此整里出來,給大家作為參考,下面就詳細的介紹一下關于手機QQ可顯示對方實時電量嗎的相關內容。1、可顯示對方實時電量。設置步驟:打開手機,點擊進入手機QQ客戶端。進入到QQ主界面后,注意左上角的QQ頭像。我們長按該頭像,直到上面彈出一個新的窗口。2、然后,我們會看到很多的在線狀態選項,選擇“我的電量”即可。這時會出現一個窗口,提...