容器技術(Linux Container,LXC)是一種輕量級的虛擬化技術,容器鏡像運行在一個隔離環境中,像集裝箱一樣,把應用封裝起來,應用之間互不干擾,實現進程的隔離。Docker 是常用的一種容器技術,本文將簡要介紹Docker及Docker安裝方法。
Docker簡介
Docker是什么
Docker基於Go語言開發,在2013年正式發布,是一個是用於構建、部署和管理容器化應用程序的開源平台,Docker 允許開發人員將應用程序打包到容器中,容器將應用程序源代碼、操作系統庫以及所需的依賴結合在一起,可以發布到任何流行的系統中。Docker具有以下優點:
- 使開發人員能夠使用簡單命令自動化構建、部署、運行、更新容器,縮短開發及運行代碼之間的周期,快速交付應用。
- 應用隔離:不同軟件運行環境兼容依賴問題,每個容器都可以看作是一個不同的微服務,容器之間互不影響。
- 輕量級,比創建虛擬機快得多
- 運行環境可移植,容器鏡像將應用運行環境,包括代碼、依賴、資源文件等打包。
Docker與虛擬機的區別
虛擬機(Virtual machine, VM)是對計算機系統的仿真,操作系統(OS)及其應用程序共享單個主機服務器的硬件資源,硬件是虛擬化的,每個虛擬機都有自己的底層操作系統。管理程序(hypervisor)位於硬件和虛擬機之間,負責創建和運行 VM 的軟件、固件或硬件。
前面講過,Docker也是一種虛擬化技術,它只虛擬化操作系統,而不像虛擬機那樣虛擬化操作系統和硬件資源。主要區別如下:
- 容器與容器之間只是進程的隔離,通過名稱空間隔離,而虛擬機是完全的資源隔離,可能更安全。
- 虛擬機的啟動可能需要幾分鍾,Docker啟動只需幾秒鍾甚至更短。
- 容器共享宿主操作系統的內核,而虛擬機使用完全獨立的內核,需虛擬化內核。
- 虛擬機是操作系統和硬件的虛擬化,Docker是操作系統的虛擬化
Docker Engine
Docker Engine 是一個客戶機/服務器 (C/S架構) 應用,主要包括三個部分:
- server:守護進程(dockerd 命令),Docker Daemon
- REST API:客戶端與守護進程間的通信接口
- CLI:command line interface (CLI) ,命令行接口客戶端(docker 命令)
CLI 使用 REST API 與 Docker Daemon 進行通信,實現對Docker Daemon的控制和交互。也可以使用 UNIX 套接字、網絡接口進行通信。守護進程構建、運行和管理 Docker 對象(鏡像、容器、網絡和volumes)。Docker 客戶機和守護進程可以在同一個系統上運行,也可以將 Docker 客戶機連接到遠程 Docker 守護進程。
Docker daemon
Docker 守護進程(dockerd)是后台服務進程,是生存期較長的進程,負責監聽 Docker API 請求,管理 Docker 對象。守護進程還可以與其他守護進程通信來管理 Docker 服務。
Docker client
Docker 客戶端(docker)是 Docker 用戶與 Docker 交互的主要方式,客戶端將命令發送給守護進程,然后守護進程執行這些命令,Docker 客戶端可以與多個守護進程進行通信。
Docker Images
Docker鏡像是一個只讀模板,其中包含創建 Docker 容器的說明。通常,一個鏡像都可能依賴一個或多個下層的鏡像組成的另一個鏡像。Docker鏡像可以從Docker倉庫中下載,也可以自己創建(Dockerfile)。
Docker Registry
Docker倉庫是集中存放Docker鏡像的地方,默認公共倉庫為 Docker Hub,也可以自己配置私人倉庫。當使用 docker pull
或 docker run
命令時,將從配置的倉庫中提取所需的鏡像。使用 docker push
命令時,鏡像將被推送到配置的倉庫中。
Docker Containers
Docker容器是鏡像運行后的進程,是鏡像的可運行實例,默認情況下,容器之間是隔離的。
Docker安裝
Docker安裝可參考官方文檔:https://docs.docker.com/engine/install/
Windows 10
下載地址 : https://hub.docker.com/editions/community/docker-ce-desktop-windows
Linux
安裝方法有兩種,一種是設置docker源進行安裝(推薦方法),另一種是是下載安裝包(CentOS和Ubuntu對應RPM、DEB包)進行手動安裝,一般在安裝主機沒有網絡的情況下使用這種方法。(RPM、DEB包介紹及安裝方法可參考Linux系統介紹)
下面介紹一下CentOS下的docker安裝方法(也可參考官方文檔:https://docs.docker.com/engine/install/centos/),Ubuntu系統下docker的安裝參考官方文檔:https://docs.docker.com/engine/install/ubuntu/
要求CentOS 7 或者 CentOS 8
1. 卸載舊版本
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2. 安裝依賴、添加源
# 安裝yum-utils包
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 設置yum源
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
3. 安裝Docker Engine
安裝最新版本的Docker Engine 和 containerd
$ sudo yum install docker-ce docker-ce-cli containerd.io
或者安裝制定版本:
# 列出可用版本
$ yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64 3:20.10.2-3.el7 docker-ce-stable
docker-ce.x86_64 3:20.10.2-3.el7 @docker-ce-stable
docker-ce.x86_64 3:20.10.1-3.el7 docker-ce-stable
docker-ce.x86_64 3:20.10.0-3.el7 docker-ce-stable
# 安裝指定版本
$ sudo yum install docker-ce-20.10.2 docker-ce-cli-20.10.2 containerd.io
4. 啟動Docker
# 啟動
$ sudo systemctl start docker
# 開機啟動
$ sudo systemctl enable docker
5. 檢驗Docker Engine是否安裝成功
# 運行hello-world鏡像
$ sudo docker run hello-world
# 或者 查看docker版本
$ docker version
配置阿里雲鏡像加速器
默認是從Docker Hub下載鏡像,為了更快的下載docker鏡像,可以配置國內的鏡像服務器,下面介紹阿里雲鏡像配置方法。
阿里雲控制台地址:https://homenew.console.aliyun.com/
- 進入容器鏡像服務
- 設置登陸密碼
首次使用需要設置密碼:
- 設置鏡像加速
點擊進入鏡像加速器:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
選擇對應的操作系統,按照操作步驟進行操作。
參考:
文章標題:容器技術介紹:Docker簡介及安裝
本文作者:hiyo
本文鏈接:https://www.cnblogs.com/hiyong/p/14405647.html
歡迎關注公眾號:「測試開發小記」及時接收最新技術文章!