Docker筆記(三):Docker安裝與配置

【空山新雨】發表於2019-07-16

原文地址:http://blog.jboost.cn/2019/07/14/docker-3.html

 

Docker分為Docker CE社群免費版與Docker EE企業收費版。Docker EE主要是在安全性及映象、容器高階管理方面提供了一些額外的支援。對於中小型企業、團隊或個人來說,用Docker CE即可。

1. 安裝Docker CE

Docker CE有三個更新渠道:

  • Stable:提供最新的GA(General Availability)穩定版,每六個月一版,如 18.09 表示18年9月版,下一版就是19.03——19年3月版
  • Test:提供GA之前的Pre-release版
  • Nightly:提供最新的build版本,每天一版

我們一般使用stable版。Docker CE支援在多種作業系統下安裝,本文只介紹比較常見的Ubuntu 18.04 LTS、CentOS7、及Windows 10上的安裝與配置。

1.1 Ubuntu 18.04 LTS 上安裝

Docker CE支援的64位Ubuntu系統版本為

  • Cosmic 18.10
  • Bionic 18.04 (LTS)
  • Xenial 16.04 (LTS)

Docker CE在Ubuntu上支援 overlay2, aufs, 以及 btrfs 幾種儲存驅動程式,對於Linux核心版本為4或以上系統的安裝,Docker CE預設使用 overlay2,如果需要使用 aufs,則需要手動配置(參考: Use the AUFS storage driver

 

1. 解除安裝舊版本

如果系統安裝有舊版本,舊版本命名為 docker, docker.io,或docker.engine,可使用如下命令進行解除安裝

$ sudo apt-get remove docker docker-engine docker.io containerd runc

目錄/var/lib/docker下的內容,包括映象、容器、資料卷、網路等,會被保留。 

 

2. 使用APT安裝

apt源使用HTTPS來確保軟體下載過程中不被篡改,所以首先新增使用HTTPS傳輸需要的軟體包以及CA證書

$ sudo apt-get update
$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

為了確認下載軟體包的合法性,新增Docker官方的GPG key: 

$ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/
gpg | sudo apt-key add -

由於國內網路原因,我們一般要使用國內源,否則安裝將會灰常灰常慢。向source.list中新增Docker軟體源(以下命令新增的是stable版本的APT映象源,如果需要test或nightly版,將stable改為對應test或nightly即可) 

$ sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) \
stable"

然後,便可更新apt軟體包快取,開始安裝了 

$ sudo apt-get update
$ sudo apt-get install docker-ce

以上命令預設會安裝軟體源裡的最新版本,如果需要安裝指定版本,則可通過檢視可用版本,然後指定版本安裝,檢視版本 

$ apt-cache madison docker-ce

安裝指定版本

$ sudo apt-get install docker-ce=<VERSION_STRING>

   

3. 使用指令碼自動安裝 

Docker提供了一個方便的安裝指令碼來在開發測試環境安裝Docker CE的edge或測試版,Ubuntu上可使用這套指令碼來安裝Docker CE的edge版

$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh --mirror Aliyun

 

4. 啟動Docker CE 

$ sudo systemctl enable docker #開啟開機自動啟動
$ sudo systemctl start docker  #啟動docker

 

5. 使用者組配置

docker命令預設是使用Unix socket與Docker引擎進行通訊(回顧下除了Unix socket還有REST API及網路埠),只有root使用者或docker使用者組裡的使用者才有許可權訪問Docker引擎的Unix socket,因此,需要將使用docker的使用者加入docker使用者組(處於安全考慮,一般儘量不要直接使用root使用者來操作)

$ sudo groupadd docker #新增docker使用者組
$ sudo usermod -aG docker $USER #將當前使用者加到docker使用者組

退出賬號重新登入即可。 

 

6. 測試安裝是否成功

$ docker run hello-world

如果顯示如下圖,則說明安裝已成功

hello-docker

 

7. 解除安裝

$ sudo apt-get purge docker-ce


 以上命令可以解除安裝docker-ce,但是之前的映象、容器、資料卷等不會自動刪除,可通過如下命令徹底刪除

$ sudo rm -rf /var/lib/docker

 

1.2 CentOS 7 上安裝

Docker CE支援64位的CentOS7,並且要求核心版本不低於3.10。CentOS 7滿足最低核心的要求,但由於版本較低,一些功能(如 overlay2 儲存層驅動)無法使用,並且部分功能可能不太穩定。
可以通過uname -r命令來檢視系統核心版本,如

[root@iZwz9dbodbaqxj1gxhpnjxZ ~]# uname -r
3.10.0-957.1.3.el7.x86_64

 

1. 解除安裝舊版本 

如果安裝了舊版本,需要先解除安裝。舊版本的Docker稱為docker或者docker-engine,解除安裝命令

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

 

2. 使用yum安裝 

安裝依賴包

$ sudo yum install -y yum-utils \
    device-mapper-persistent-data \
    lvm2

由於國內網路原因,我們一般要使用國內源,否則安裝可能會灰常灰常慢。新增yum軟體源 

$ sudo yum-config-manager \
    --add-repo \
    https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce
    .repo

如果要安裝nightly或test版,執行如下對應的命令 

$ sudo yum-config-manager --enable docker-ce-nightly # 啟用nightly, 將--enbale改為disable又可以禁用
$ sudo yum-config-manager --enable docker-ce-test # 啟用test

安裝最新版本 

$ sudo yum makecache fast # 更新軟體源快取
$ sudo yum install docker-ce # 安裝最新版本

安裝指定版本 

$ sudo yum list docker-ce --showduplicates | sort -r # 列出可用版本
$ sudo yum install docker-ce-<VERSION_STRING> # 安裝指定版本

 

3. 使用指令碼自動安裝 

執行如下命令,則會自動安裝Docker CE的edge版,注意只在開發或測試環境這麼用(建議最好還是用stable版)

$ curl -fsSL get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh --mirror Aliyun

 

4. 啟動Docker CE 

$ sudo systemctl enable docker #開啟開機自動啟動
$ sudo systemctl start docker  #啟動docker

 

5. 使用者組配置

docker命令預設是使用Unix socket與Docker引擎進行通訊(回顧下除了Unix socket還有REST API及網路埠),只有root使用者或docker使用者組裡的使用者才有許可權訪問Docker引擎的Unix socket,因此,需要將使用docker的使用者加入docker使用者組(處於安全考慮,一般儘量不要直接使用root使用者來操作)

$ sudo groupadd docker #新增docker使用者組
$ sudo usermod -aG docker $USER #將當前使用者加到docker使用者組

退出賬號重新登入即可。 

 

6. 測試安裝是否成功

$ docker run hello-world

如果顯示如下圖,則說明安裝已成功
hello-docker

如果在 CentOS 中使用 Docker CE 看到下面的這些警告資訊:

WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled

可以新增核心配置引數以啟用這些功能。

$ sudo tee -a /etc/sysctl.conf <<-EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

然後重新載入 sysctl.conf 即可 

$ sudo sysctl -p

 

7. 解除安裝 

$ sudo yum remove docker-ce # 解除安裝docker-ce
$ sudo rm -rf /var/lib/docker # 該目錄下的映象、容器、資料卷、網路等不會自動刪除

 

1.3 Windows 10 上安裝

windows 10上的安裝非常簡單,直接下載stable版本安裝。

安裝完後,在 Windows 搜尋欄輸入 Docker 點選 Docker for Windows 開始執行

 

2. 配置國內映象

Docker預設是從Docker Hub(官方的映象倉庫)拉取映象的,國內訪問一般會比較慢,因此可以配置一些映象加速器,很多雲服務商提供了自己的加速器服務,如Azure中國,阿里雲(需要登入獲取),七牛雲等。

Ubuntu、CentOS上,配置國內映象只需要在/etc/docker/daemon.json中寫入如下內容(如果檔案不存在則建立一個)

{
    "registry-mirrors": [
        "https://dockerhub.azk8s.cn",
        "https://reg-mirror.qiniu.com"
    ]
}

然後重新啟動服務 

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

 

對於Windows 10,在系統右下角托盤Docker圖示上右鍵選單選擇 Settings ,開啟配置視窗後在左側導航選單選擇 Daemon 。在 Registry mirrors 一欄中填寫加速器地址 https://dockerhub.azk8s.cn ,之後點選Apply 儲存, Docker 就會自動重啟並應用配置的映象地址了。

可以通過docker info命令來檢查加速器是否生效,如果執行命令能看到類似如下資訊,則說明加速器配置生效了。

Registry Mirrors:
    https://dockerhub.azk8s.cn/

 

3. 總結 

Docker分Docker CE與Docker EE兩個版本,對大多數人來說,一般使用Docker CE就行了。我們在安裝Docker CE時,最好安裝stable版,比較穩定可靠。同時,Linux安裝時,記得配置Docker軟體源,不然有可能太慢。安裝完後,需要配置映象加速器,加快映象的下載速度。工具有了,接下來就是探索實踐了,加油吧少年!


我的個人部落格地址:http://blog.jboost.cn
我的微信公眾號:jboost-ksxy (一個不只有技術乾貨的公眾號,歡迎關注,及時獲取更新內容)
—————————————————————————————————————————————

 

相關文章