Docker簡介與安裝
- 一、Docker基本簡介
-
-
- 1.Docker三要素
- 2. 容器種類
- 3. 虛拟機與容器的差別
- 4.Docker的優點
- 5.Docker的應用場景
-
- 二、docker的安裝
- 三、鏡像
一、Docker基本簡介
1.Docker三要素
-
鏡像
鏡像(images):一個面向Docker容器引擎的隻讀模闆
-
容器
容器 (Container):從鏡像建立的運作執行個體
-
倉庫
倉庫 (Repository):集中儲存鏡像的地方;分公有和私有倉庫
1.public(公有倉庫)
是開放給使用者使用、允許使用者管理鏡像的 Registry 服務
2.private(私有倉庫)
除了使用公開服務外,使用者還可以在本地搭建私有 Docker Registry
2. 容器種類
-
Linux容器
最初的Linux容器技術是Linux容器,通常稱為LXC。LXC是Linux作業系統級别的虛拟化方法,用于在單個主機上運作多個隔離的Linux系統。
-
Docker
Docker起初是一個建構單一應用程式LXC容器的項目,它對LXC進行了多次改造,使容器更加便攜和靈活使用。後來它變成了自己的容器運作環境。從較高的層次上講,Docker是一個Linux實用程式,可以有效地建立,運送和運作容器。
3. 虛拟機與容器的差別
Docker以容器的方式實作了應用程式的隔離,隔離和安全性可以給主機上同時運作多個容器。容器時輕量級的,因為不需要要管理撐的額外負擔,而時直接在主機的核心中運作。
與虛拟機相比,可以在給定的硬體元件上運作更多的容器,甚至可以在虛拟機的主機中運作docker
特性 | 容器 | 虛拟機 |
---|---|---|
啟動速度 | 秒級 | 分鐘級 |
硬碟占用 | 一般為MB | 一般為GB |
運作性能 | 核心運作幾乎無損失 | 5%左右損失 |
系統支援量 | 單機支援上千個容器 | 一般幾十個 |
隔離性 | 程序級别 | 系統級别 |
作業系統 | 主要Linux | 幾乎所有 |
封裝程度 | 隻打包項目代碼和依賴關系,共享主控端核心 | 完整的作業系統,與主控端隔離 |
4.Docker的優點
-
更快速的傳遞和部署
對于開發與運維人員來說,最希望的就是一次建立或配置,可以在任意的地方正常運作,Docker是可以快速建立容器,快速疊代(重複回報的活動)應用程式,并且還讓整個過程全程可見,可以讓使用這個應用程式的人更容易的了解它是如何建立與工作的,另外Docker容器它的啟動時間是秒級的,可以大大節約開發、測試、部署的時間。
-
更高效的虛拟化
Docker 容器的運作不需要額外的 hypervisor 支援,它是核心級的虛拟化,是以可以實作更高的性能和效率的虛拟化。
-
更輕松的遷移和擴充
Docker 容器幾乎可以在任意的平台上運作,包括實體機、虛拟機、公有雲、私有雲、個人電腦、伺服器等。這種相容性可以讓使用者把一個應用程式從一個平台直接遷移到另外一個。
-
更簡單的管理
使用 Docker,隻需要小小的修改,就可以替代以往大量的更新工作。并且所有的修改都以增量的方式被分發和更新,進而實作自動化并且高效的管理。
5.Docker的應用場景
- Web 應用的自動化打包和釋出。
- 自動化測試和持續內建、釋出。
- 在服務型環境中部署和調整資料庫或其他的背景應用。
- 從頭編譯或者擴充現有的 OpenShift 或 Cloud Foundry 平台來搭建自己的 PaaS 環境。
二、docker的安裝
- 環境部署
[[email protected] ~]# systemctl stop firewalld
[[email protected] ~]# setenforce 0
[[email protected] ~]# vi /etc/selinux/config
SELINUX=disabled
- 安裝依賴包
yum install -y yum-utils device-mapper-persistent-date lvm2
- 設定阿裡雲鏡像源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.安裝Docker-CE(社群版docker)
yum -y install docker-ce
- 啟動服務與自啟動
systemctl start docker
systemctl enable docker
- 檢視docker版本
docker version
- 檢視docer資訊
docker info
三、鏡像
-
鏡像加速
阿裡雲查找個人鏡像加速
Docker基本簡介安裝一、Docker基本簡介二、docker的安裝三、鏡像 - 重新加載服務配置檔案并重新開機
systemctl daemon-reload
systemctl restart docker
重新開機後鏡像位址變為阿裡雲的位址
- 配置路由轉發
[[email protected] ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward=1
[[email protected] ~]# sysctl -p
[[email protected] ~]# systemctl restart docker
- 檢視鏡像資訊
docker search nginx
- 下載下傳鏡像
docker pull nginx
- 檢視下載下傳鏡像資訊
[[email protected] ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest f6d0b4767a6c 7 weeks ago 133MB
nginx web f6d0b4767a6c 7 weeks ago 133MB
#存儲庫 #标簽 #鏡像ID #建立時間 #大小
- 擷取鏡像詳細資訊
docker inspect nginx:latest
- 為鏡像添加新标簽
docker tag nginx:latest nginx:web
-
删除鏡像
(如果鏡像已經建立容器,需要停止運作容器)
9.1 通過标簽删除 (docker rmi nginx:web )
[[email protected] ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest f6d0b4767a6c 7 weeks ago 133MB
nginx web f6d0b4767a6c 7 weeks ago 133MB
[[email protected] ~]# docker rmi nginx:web
Untagged: nginx:web
[[email protected] ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest f6d0b4767a6c 7 weeks ago 133MB
9.2 通過鏡像ID删除(docker rmi f6d0b4767a6c)
[[email protected] ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest f6d0b4767a6c 7 weeks ago 133MB
[[email protected] ~]# docker rmi f6d0b4767a6c
Untagged: nginx:latest
Untagged: [email protected]:10b8cc432d56da8b61b070f4c7d2543a9ed17c2b23010b43af434fd40e2ca4aa
··········
[[email protected] ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
批量删除鏡像
docker images | awk '{print "docker rmi "$3}' | bash