docker架構、鏡像及容器

一、docker概述

1.docker是在Linux裏運行應用的開源工具,是一種輕量級虛擬機
2.它的設計宗旨是通過對應用組件的封裝、發佈、部署、運行等生命週期的管理,達到應用組件級別的一次封裝,到處運行的目的
3.docker的三大核心概念:鏡像、容器、倉庫,安裝docker以及圍繞鏡像和容器的具體操作

1)鏡像:docker的鏡像是創建容器的基礎,可以理解爲一個面向docker容器引擎的只讀模板
2)容器:docker的容器是從鏡像創建的運行實例,他可以被啓動、停止和刪除。所創建的每個容器都是相互隔離、互不可見的,可以把容器看做是一個精簡版的Linux系統
3)倉庫:docker倉庫是用來集中保存鏡像的地方,使用push命令來上傳自己創建的鏡像到公共倉庫,使用pull下載公共倉庫的鏡像,目前最大的公共倉庫是docker hub

三、安裝docker

可以在centos6中安裝,但可能並不穩定,當前系統:centos7.2

1.配置docker的yum倉庫
vim /etc/yum.repos.d/docker.repo
	[docker-repo]
	name=Docker Repository
	baseurl=https://yum.dockerproject.org/repo/main/centos/7/
	enable=1
	gpgcheck=0
	gpgkey=https://yum.dockerproject.org/gpg
2.安裝docker

1)安裝

yum -y install docker-engine

2)啓動設置開機啓動

systemctl start docker.service
systemctl enable docker.service

3)安裝好的docker有兩個程序:docker服務端和docker客戶端,服務端是一個服務進程,客戶端是服務端的遠程控制器,大部分情況下服務端和客戶端都運行在同一臺機器上

四、docker鏡像操作

1.從遠端官方倉庫搜索鏡像
docker search 關鍵字

在這裏插入圖片描述

2.獲取鏡像
docker pull 倉庫名 [:標籤]

在這裏插入圖片描述

3.查看本地所有鏡像
docker images 

在這裏插入圖片描述

	#repository:鏡像屬於的倉庫
	#tag:鏡像的標籤信息,標記同一倉庫中的不同鏡像
	#image id:鏡像的唯一ID號
	#created:鏡像創建的時間
	#virtual size:鏡像的大小
4.爲本地鏡像添加新的標籤
docker tag 名稱 :[標籤]  新名稱 :[新標籤]

在這裏插入圖片描述

5.刪除鏡像
docker rmi 倉庫名:標籤

在這裏插入圖片描述

6.存儲鏡像:將鏡像保存爲本地文件
docker save -o 存儲文件名 存儲的鏡像
docker save -o lamp centos
7.載入鏡像:將存儲的鏡像從A主機拷貝到B主機
docker load < 存儲的文件名
 例:docker load < lamp
		或
docker --input 存儲的文件
 例:docker --input lamp

五、docker容器操作

1.創建容器
docker create [選項] 鏡像 運行的程序
docker create -it daocloud.io/centos /bin/bash
	# -i:讓容器的輸入保持打開
	# -t:讓docker分配一個僞終端
2.查看容器狀態
docker ps -a
	#-a:所有容器,包括已啓動和未啓動的
3.啓動容器
docker start 容器的id或名稱
4.停止容器
docker stop 容器id或名稱
5.進出容器
docker exec -it 容器id或名稱 /bin/bash
例:docker exec -it centos3 /bin/bash
6.創建、取名、啓動並進入容器
docker run --name 容器名 -it 鏡像名 要運行的程序
例:docker run -name test -i -t daocloud.io/centos /bin/bash
7.導出容器
docker export 容器id或名稱 > 文件名

在這裏插入圖片描述

8.導入容器:將導出的文件用docker import命令導入成爲鏡像
cat 文件名 | docker import - 生成的鏡像名稱:標籤
cat /docker/centos3 | docker import - centos:6
9.刪除容器
docker rm 容器名或ID
10.查看容器IP
docker inspect --format '{{ .NetworkSettings.IPAddress }}' 容器名

六、docker資源控制

1.限制CPU使用速率
docker run --cpu-quota 使用率 容器名
#百分比是以1000爲單位
例:
docker run --cpu-quota 20000 centos 
#將容器centos的CPU使用率限定爲20%
2.多任務按比例分享CPU
docker run --cpu-shares 1024 容器A
docker run --cpu-shares 1024 容器B
docker run --cpu-shares 2048 容器C
#將容器A、B、C的CPU資源比例分配爲1:1:2
3.限制CPU內核使用

假如服務器有16個內核,編號分別爲0-15,使容器綁定在第1-4個內核使用

docker run --cpuset-cpu 0,1,2,3 容器名
4.對內存使用的限制

一旦容器使用的內存超過了容量,內核就會嘗試收回這些內存,如果無法收回,進程就會被殺死

docker run -m 512m centos  
#將容器centos的內存限制爲512M
5.對blkio的限制

如果是在一臺服務器上進行容器的混合部署,那麼會出現同時有幾個程序寫磁盤數據的情況,這時可以通過–device-write-iops選項來限制寫入的iops,相應的還有–device-read-bps選項可以限制讀取的iops。但是這種方法只能針對blkio限制的是設備(device) ,而不是分區。相應Cgroup寫配置文件/sysfs/cgroupbikio/docker容器ID/blikio.throttle.write iops device。

docker run --devicc-write-bps /dev/sda1:1mb容器名
#限制容器的/dev/sdal的寫入ipos爲1MB

謝謝閱讀

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章