容器技術介紹:Docker簡介及安裝


容器技術(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 守護進程。

https://docs.docker.com/get-started/overview/

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 pulldocker 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/

  1. 進入容器鏡像服務

  1. 設置登陸密碼
    首次使用需要設置密碼:

  1. 設置鏡像加速
    點擊進入鏡像加速器:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

選擇對應的操作系統,按照操作步驟進行操作。

參考:

  1. https://docs.docker.com/get-started/overview/
--THE END--

文章標題:容器技術介紹:Docker簡介及安裝
本文作者:hiyo
本文鏈接:https://www.cnblogs.com/hiyong/p/14405647.html
歡迎關注公眾號:「測試開發小記」及時接收最新技術文章!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM