系統(tǒng)運(yùn)維
博文結(jié)構(gòu)docker鏡像操作docker容器操作docker資源控制docker核心概念一.docker是什么?
(1)docker是在linux容器里運(yùn)行應(yīng)用的開源工具,是一種輕量級(jí)的“虛擬機(jī)”
logo設(shè)計(jì)為藍(lán)色鯨魚,鯨魚可以看作為宿主機(jī),上面的集裝箱可以理解為相互隔離的容器,每個(gè)集裝箱中包含自己的應(yīng)用程序。
(2)docker和虛擬機(jī)的區(qū)別
作為一種輕量級(jí)的虛擬化方式,docker 與傳統(tǒng)虛擬機(jī)相比具有顯著的優(yōu)勢。
docker之所以擁有眾多優(yōu)勢,與操作系統(tǒng)虛擬化自身的特點(diǎn)是分不開的。傳統(tǒng)虛擬機(jī)需要有額外的虛擬機(jī)管理程序和虛擬機(jī)操作系統(tǒng)層,而docker容器是直接在操作系統(tǒng)層面之上實(shí)現(xiàn)的虛擬化,
如圖:
(3)docker的使用場景
現(xiàn)在開發(fā)者需要能方便地創(chuàng)建運(yùn)行在云平臺(tái)上的應(yīng)用,必須要脫離底層的硬件,同時(shí)還需要任何時(shí)間地點(diǎn)可獲取這些資源,這正是docker所能提供的。docker 的容器技術(shù)可以在一臺(tái)主機(jī) 上輕松為任何應(yīng)用創(chuàng)建一個(gè)輕量級(jí)的、可移植的、自給自足的容器。通過這種容器打包應(yīng)用程序,意味著簡化了重新部署、調(diào)試這些瑣碎的重復(fù)工作,極大地提高了工作效率。
二.docker的核心概念及安裝
(1)鏡像
docker的鏡像(mage) 是創(chuàng)建容器的基礎(chǔ),類似虛擬機(jī)的快照
可以理解為是一一個(gè)面向docker容器引擎的只讀模板。比如,一個(gè)鏡像可以是一個(gè)完整的 centos 操作系統(tǒng)環(huán)境,稱為-個(gè)centos
鏡像;可以是一個(gè)安裝了mysql的應(yīng)用程序,稱為一個(gè)mysql鏡像,等等。
(2)容器
dooker的容器(container) 是從鏡像創(chuàng)建的運(yùn)行實(shí)例。它可以被啟動(dòng)、停止和刪除。所創(chuàng)建的每一個(gè)容器都是相互隔離、互不可見,可以保證安全性的平臺(tái)??梢园讶萜骺醋饕粋€(gè)簡易版的linux環(huán)
境,docker 利用容器來運(yùn)行和隔離應(yīng)用。
(3)倉庫
docker倉庫(repository) 是用來集中保存鏡像的地方,當(dāng)創(chuàng)建了自己的鏡像之后,可以使用push命令將它上傳到公有倉庫(public) 或者私有倉庫(private), 這樣一來當(dāng) 下次要在另外一臺(tái)機(jī)器上使用這個(gè)鏡像時(shí),只需要從倉庫上拉取下來就可以了。
(4)安裝docker
主機(jī)有網(wǎng)的話可以直接安裝,
配置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 -y install docker安裝完成可以啟動(dòng)docker,并設(shè)置開機(jī)自啟
[root@localhost ~]# systemctl start docker[root@localhost ~]# systemctl enable dockercreated symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.[root@localhost ~]# docker version //查看docker版本client: version: 1.13.1 api version: 1.26 package version: docker-1.13.1-75.git8633870.el7.centos.x86_64 go version: go1.9.4 git commit: 8633870/1.13.1 built: fri sep 28 19:45:08 2018 os/arch: linux/amd64server: version: 1.13.1 api version: 1.26 (minimum version 1.12) package version: docker-1.13.1-75.git8633870.el7.centos.x86_64 go version: go1.9.4 git commit: 8633870/1.13.1 built: fri sep 28 19:45:08 2018 os/arch: linux/amd64 experimental: false分為服務(wù)端與客戶端
三.docker鏡像操作
(1)搜索鏡像(前提電腦有網(wǎng))
[root@localhost ~]# docker search dhcpindex name description stars official automateddocker.io docker.io/networkboot/dhcpd suitable for running a dhcp server for you... 43 [ok]docker.io docker.io/joebiellik/dhcpd dhcp server running on alpine linux 15 [ok]docker.io docker.io/gns3/dhcp a dhcp container for gns3 using dnsmasq 3 [ok]docker.io docker.io/instantlinux/dhcpd-dns-pxe serve dns, dhcp and tftp from a small alpi... 2 [ok]docker.io docker.io/ictu/dhcpd-tftpd dhcpd tftpd container 1 [ok]docker.io docker.io/marcelwiget/dhcptester simple dhcp client simula(2)獲取鏡像
[root@localhost ~]# docker pull docker.io/network/dhcpd //下載上面最開頭的dhcp
還有一種就是插入已經(jīng)下載好的dhcp
做成光盤插入到主機(jī)中
[root@localhost ~]# mount /dev/cdrom /media/[root@localhost ~]# cd /media/[root@localhost media]# lsdhcp[root@localhost media]# cp dhcp /[root@localhost media]# [root@localhost /]# docker load < dhcpfccbfa2912f0: loading layer 116.9 mb/116.9 mbe1a9a6284d0d: loading layer 15.87 kb/15.87 kbac7299292f8b: loading layer 14.85 kb/14.85 kba5e66470b281: loading layer 5.632 kb/5.632 kba8de0e025d94: loading layer 3.072 kb/3.072 kbe2e29955c5aa: loading layer 12.7 mb/12.7 mb12e14fab4dd4: loading layer 49.15 kb/49.15 kb47bdfd3bbf39: loading layer 4.096 kb/4.096 kbloaded image: docker.io/networkboot/dhcpd:latest將鏡像下載到本地
(3)查看鏡像信息
[root@localhost /]# docker imagesrepository tag image id //鏡像id created sizedocker.io/networkboot/dhcpd latest 6f98b6b9b486 19 months a