docker入門+下載到建立完整案列演示(附帶思維導圖)

沿途為何沒愛河發表於2020-12-15

前置條件

需要掌握Linux及常用命令

思維導圖

在這裡插入圖片描述

Docker 架構

Docker 教程

Docker基礎簡介

1. Docker是什麼

  • Docker是一個由GO語言寫的程式執行的“容器”(Linux containers, LXCs),它是完整的一套容器管理系統

  • Docker提供了一組命令,讓使用者更加方便直接地使用容器技術,而無需要過多關心底層核心技術

什麼是容器

重點奧:一個容器就相當於一個虛擬機器

docker用途,目前有三大類

  • 1.提供一次性的環境。比如,本地測試他人的軟體、持續整合的時候提供單元測試和構建的環境

  • 2.提供彈性的雲服務。因為 Docker 容器可以隨開隨關,很適合動態擴容和縮容

  • 3.組建微服務架構。通過多個容器,一臺機器可以跑多個服務,因此在本機就可以模擬出微服務架構

2. Docker與虛擬化
1.傳統來看,虛擬化既可以通過硬體模擬來實現,也可以通過作業系統軟體來實現 而容器技術則更為優雅

2.它充分利用了作業系統本身已有的機制和特性,可以實現遠超傳統虛擬機器的輕量級虛擬化 因此,有人甚至把它稱為 “新一代的虛擬化”技術,並將基於容器打造的雲平臺親切地稱為“容器雲”毫無疑問

3.Docker 正是眾多容器技術中的佼佼者,是容器技術發展過程中耀眼的一抹亮色

3. Docker虛擬化的好處

好處一:應用部署方便

  • 舉個簡單的例子,假設使用者試圖基於最常見的 LAMP (Linux+Apache+MySQL+PHP )組 合來構建網站
    按照傳統的做法,首先需要安裝 Apache MySQL PHP 以及它們各自運
    行所依賴的環境;之後分別對它們進行配置(包括建立合適的使用者、配置引數等);經過大
    量的操作後,還需要進行功能測試,看是否工作正常;如果不正常,則進行除錯追蹤,意 味著更多的時間代價和不可控的風險
    可以想象,如果應用數目變多,事情會變得更加難以處理

  • 更為可怕的是, 旦需要伺服器遷移(例如從阿里雲遷移到騰訊雲),往往需要對每個 應用都進行重新部署和除錯
    這些瑣碎而無趣的“體力活”,極大地降低了使用者的工作效率
    究其根源,是這些應用直接執行在底層作業系統上,無法保證同一份應用在不同的環境中行為一致

  • Docker 提供了一種更為聰明的方式,通過容器來打包應用、解藕應用和執行平臺
    這意味著遷移的時候,只需要在新的伺服器上啟動需要的容器就可以了,無論新舊伺服器 是否是同一型別的平臺
    這無疑將幫助我們節約大量的寶貴時間,並降低部署過程出現問題的風險

好處二:伺服器同等配置,效能更優,利用率更高

  • 讓我們假設你有一個容器映象(image)容量是1GB,如果你想用一個完整的虛擬機器來裝載,你得需要容量的大小是1GB乘上你需要虛擬機器的數量。但使用Linux容器虛擬化技術(LXC)和AuFS,你可以共享1GB容量,

  • 如果你需要1000個容器,假設他們都執行在同樣的系統影像上,你仍然可以用稍微比1GB多一點的空間來給容器系統

  • 因此,藉助經過全面調優的容器系統,你就可以在同一硬體上擁有數量比使用Xen虛擬機器或KVM虛擬機器多出四到六倍的伺服器應用例項。

實際案例:以springcloud微服務為例
7個服務-7臺linux伺服器
7個服務-1臺linux伺服器-docker-7個映象

在這裡插入圖片描述
在這裡插入圖片描述

4. 核心概念

** Docker大部分的操作都圍繞著它的三大核心概念: 映象、容器和倉庫(本章只用到映象/容器,倉庫後面介紹)**
1.映象

  • Docker 映象類似於虛擬機器映象,可以將它理解為一個只讀的模板

  • 例如,一個映象可以包含一個基本的作業系統環境(例如:ubuntu16.04),可以把它稱為一個 ubuntu16.04 映象

2.容器

  • Docker 容器類似於一個輕量級的沙箱, Docker利用容器來執行和隔離應用

  • 容器是從映象建立的應用執行例項 它可以啟動、開始、停止 刪除,而這些容器都是彼此相互隔離、互不可見的

  • 可以把容器看作一個簡易版的 Linux 系統環境(包括 root 使用者許可權、程式空間、使用者空間和網路空間等)
    以及執行在其中的應用程式打包而成的盒子

3.倉庫

  • Docker 倉庫類似於程式碼倉庫,是 Docker 集中存放映象檔案的場所。

CentOS7 安裝docker(線上方式)

1.核心版本資訊檢查

uname -r

2.解除安裝可能存在的舊版本

yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine

3.安裝必要的系統工具

yum install -y yum-utils device-mapper-persistent-data lvm2

在這裡插入圖片描述

4.換源新增docker-ce安裝源(linux本身的應用市場)

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

5.更新yum快取

yum makecache fast

6.安裝docker-CE

yum -y install docker-ce

7.驗證docker是否安裝成功

docker --version 或 docker info

8.驗證
8.1檢視docker服務是否啟動

1.檢視docker服務的狀態

  • systemctl status docker

2.啟動docker服務

  • systemctl start docker

3.停止docker服務

  • systemctl stop docker

4.重啟docker服務

  • systemctl restart docker

5.把docker服務做成隨宿主機啟動而啟動

  • systemctl enable docker 設定自啟動
  • systemctl daemon-reload 重新整理配置

在這裡插入圖片描述

映象的操作

1.配置加速器

  • 國內從Docker Hub下載映象速度很慢,我們可以配置阿里雲專屬加速器來解決
    瀏覽器訪問並登陸阿里雲(淘寶或支付寶帳號登陸也可以)
    https://www.aliyun.com/
  • 登陸後,進入阿里雲“控制檯”,搜尋“容器映象服務”,然後點選選單:“映象中心”–>“映象加速器”
    最後,將容器右邊的“加速器地址”複製下來即可
    https://oyi1xr7k.mirror.aliyuncs.com
  • 設定容器映象服務的密碼(可選)
    容器映象服務(Container Registry)提供多地域映象託管能力,穩定的國內外映象構建服務,便捷的映象授權功能,
    方便使用者進行映象全生命週期管理。在開通流程中,您需要設定獨立於賬號密碼的Registry登入密碼,便於映象的上傳、下載。
    注1:此步驟為可選,如果需要使用阿里雲來管理你的映象 ,此步驟必須設定

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

2.修改docker相關配置

  • linux輸入命令,如果沒有也會給你建立一個daemon.json
    vi /etc/docker/daemon.json
  • 新增下面內容(地址替換成上面的加速器地址):
    {
    “registry-mirrors”:[“https://8mvln8cw.mirror.aliyuncs.com”]
    }
    在這裡插入圖片描述

重新載入配置

  • cd /etc/docker

    ls
    systemctl daemon-reload 重新整理配置

重啟docker

  • systemctl restart docker

3.搜尋映象

  • docker search 映象名稱

    eg:docker search centos 、 docker search mysql

在這裡插入圖片描述

4.下載映象

  • docker pull 映象名
  • eg:獲取一個 centos 系統的基礎映象可以使用如下的命令
  • docker pull centos 沒有給版本號,預設下載最新的
  • docker pull centos:版本號

在這裡插入圖片描述

5.檢視映象

  • docker images

在這裡插入圖片描述

6.刪除映象

  • docker rmi 映象ID/標籤

這個就不演示了

容器的操作

1.檢視所有容器

  • docker ps -a all:所有
    在這裡插入圖片描述

2.建立容器

  • docker run -itd --name 容器名字 映象名字:映象版本 /bin/bash
  • docker run -itd --name 容器名字 映象名字:映象版本 /bin/bash
  • docker run -itd --name 容器名字 映象id /bin/bash
  • 簡寫:docker run -itd --name 容器名字 映象id

在這裡插入圖片描述
3.刪除容器

  • docker rm 容器ID/容器名

4.啟停docker容器

  • docker start 容器ID/name
  • docker stop 容器ID或name
  • docker restart 容器ID或name
    在這裡插入圖片描述

5.進入容器

  • docker exec -it 容器ID/容器NAME /bin/bash
  • 簡寫:docker exec -it 容器ID/容器NAME bash
    在這裡插入圖片描述

6.退出容器

  • exit

在這裡插入圖片描述

相關文章