Docker的安裝與鏡像、容器、倉庫的管理

虛擬化技術

虛擬化 通常分爲硬件級虛擬化和操做系統級虛擬化。硬件級虛擬化 是運行在硬件之上的虛擬化技術,它的管理軟件有Hypervisor或virtual machine monitor,它須要模擬的是一個完整的操做系統,例如:VMware、Xen、Virtual Box、AWS EC2和阿里雲ECS。操做系統級虛擬化 是運行在操做系統之上的,它模擬的是運行在操做系統上的多個不一樣進程,並將其封裝在一個密封的容器裏面,也稱爲容器化技術。例如docker。python

雲計算服務模式

IaaS:基礎設施即服務,一般指的是在雲端爲用戶提供基礎設施,如虛擬機、服務器、存儲、負載均衡和網絡等。例如:AWS、阿里雲。

PaaS:平臺即服務,一般指的是在雲端爲用戶提供可執行環境、數據庫、網站服務器和開發工具等。例如:OpenShift、Red Hat、Cloudarea等。

SaaS:軟件即服務,一般指的是在雲端爲用戶提供軟件,如CRM系統、郵件系統、在線協做和在線辦公等,例如:微軟的Office、有道、麥客、Tower等。

CaaS:容器即服務,隨着容器的出現,在傳統IaaS層出現了用容器替代虛擬機的服務模式,這種模式是虛擬雲主機的升級版,因爲容器的輕量級特性,從資源利用率和性能方面都比IaaS層的虛擬機高出不少。

Docker主要解決什麼問題?

Docker對外宣稱是Build、Ship和Run,Docker要解決的核心問題就是快速地作這三件事。它經過將運行環境和應用程序打包到一塊兒,來解決部署的環境依賴問題,真正作到跨平臺的分發和使用。

Docker和虛擬機的區別?

容器省去了操做系統,整個層級更簡化,這樣能夠在單臺服務器上運行更多的應用。

1、安裝docker

1.配置repo倉庫

cat /etc/yum.repos.d/docker.repoweb

[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg

Docker的安裝與鏡像、容器、倉庫的管理

2.安裝docker

yum -y install docker-enginesql

3.啓動並設置開啓自啓動

systemctl enable docker
systemctl start docker

2、docker的鏡像

Docker的鏡像是建立容器的基礎,相似虛擬機的快照,能夠理解爲是一個面向Docker容器引擎的只讀模板,好比:一個鏡像能夠是一個完整的CentOS操做系統環境,稱爲一個CentOS鏡像;能夠是一個安裝了Mysql的應用程序,稱之爲一個Mysql鏡像等

1.查看本機鏡像列表

docker images
各個選項說明:
REPOSITORY:表示鏡像的倉庫源
TAG:表示鏡像的標籤
IMAGE ID:表示鏡像的ID
CREATED:表示鏡像建立時間
SIZE:表示鏡像大小

Docker的安裝與鏡像、容器、倉庫的管理

2.獲取鏡像的三種方式:

1)下載鏡像(默認從Docker Hub下載)
2)把容器轉換爲鏡像
3)製做鏡像(經過dockerfile生成鏡像)

3.查找鏡像(默認從Docker Hub查詢)

docker search httpd         //查找全部httpd相關的鏡像

Docker的安裝與鏡像、容器、倉庫的管理

4.下載鏡像(默認從Docker Hub查詢)

docker pull httpd

Docker的安裝與鏡像、容器、倉庫的管理

5.運行httpd容器,經過8080端口進行訪問

docker run -d -p 80:80 httpd
參數說明:
-d:讓容器在後臺運行
-P :是容器內部端口隨機映射到主機的高端口。
-p :是容器內部端口綁定到指定的主機端口。

Docker的安裝與鏡像、容器、倉庫的管理

Docker的安裝與鏡像、容器、倉庫的管理

6.查看httpd鏡像web應用程序的訪問日誌

docker pull httpd

docker run -d -p 80:80 httpd

docker ps

docker logs -f ID or name

Docker的安裝與鏡像、容器、倉庫的管理

7.刪除鏡像

docker rmi ID

8.刪除容器(-f:強制)

docker rm ID/name

當刪除鏡像不成功時,須要先刪除容器再刪除鏡像

報錯信息:Error response from daemon: conflict: unable to remove repository reference "ubuntu" (must force) - container 23107e15cef9 is using its referenced image 735f80812f90

9.導出鏡像

docker save -o httpd01 httpd

Docker的安裝與鏡像、容器、倉庫的管理

10.導入鏡像

方式1:docker load < httpd01
方式2:docker --import httpd01

11.刪除none鏡像

docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker stop
docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker rm
docker images|grep none|awk '{print $3 }'|xargs docker rmi

3、docker的容器

Docker的容器是從鏡像建立的運行實例,它能夠被啓動、中止和刪除。所建立的每個容器都是相互隔離、互不可見的,能夠保證平臺的安全性。還能夠把容器看做是一個簡易版的Linux環境,Docker利用容器來運行和隔離應用。

1.查看正運行中的容器

docker ps

2.查看系統最後一次啓動容器

docker ps -a

3.查詢最後一次建立的容器

docker ps -l

4.中止web應用容器

docker stop awesome_perlman

5.重啓web應用容器

docker start awesome_perlman

6.容器命名

docker run -d -P --name testweb training/webapp python app.py
docker ps

7.進入容器

[root@centos7-1 ~]# docker exec -it flamboyant_mahavira /bin/bash
root@b53edd87befa:/#

Docker的安裝與鏡像、容器、倉庫的管理

8.容器導出

docker export ID/name > 文件名

9.容器導入

cat 文件名 | docker import - 文件名:標籤

4、docker倉庫

Docker倉庫是用來集中保存鏡像的地方,當建立了本身的鏡像以後,能夠利用push目錄將它上傳到公共倉庫或者私有倉庫,這樣一來當下次要在另外一臺機器上使用這個鏡像的時候,只須要從倉庫上pull下來就能夠了。

倉庫註冊服務器(Registry)是存放倉庫的地方,其中包含了多個倉庫,每一個倉庫幾種存放某一類鏡像,而且使用不一樣的標籤來區分它們。目前最大的公共倉庫是Docker HUb,其中存放了數量龐大的鏡像供用戶下載使用。

docker hub倉庫

[root@centos7-1 ~]# docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over
Username: maaiqiang
Password:
Login Succeeded

5、docker資源控制

1.限制cpu的使用速率

docker run --cpu-quota 20000 容器名

2.按比例分配

docker run --cpu-shares 1024 容器名

3.限制cpu內核使用

dock run --cpuset-cpus 0,1,2,3 容器名

4.對內存使用進行限制

docker run -m 512m 容器名

5.對blkio的限制

docker run --device-write-bps /dev/sda1:1mb 容器名

6、docker容器中安裝命令

1.進入容器

[root@centos7-1 ~]# docker ps
[root@centos7-1 ~]# docker exec -it flamboyant_mahavira /bin/bash
root@a717b35f34d3:/#

Docker的安裝與鏡像、容器、倉庫的管理

2.安裝軟件包

apt-get update

Docker的安裝與鏡像、容器、倉庫的管理

同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,這樣才能獲取到最新的軟件包docker

3.安裝vim

apt-get install vim

Docker的安裝與鏡像、容器、倉庫的管理

Docker的安裝與鏡像、容器、倉庫的管理

相關文章
相關標籤/搜索