安裝 Docker
Docker 分為 CE 和 EE 兩大版本。CE 即社群版(免費,支援周期 7 個月),EE 即企業版,強調安全,付費使用,支援周期 24 個月。
Docker CE 分為 stable, test, 和 nightly 三個更新頻道。每六個月釋出一個 stable 版本 (18.09, 19.03, 19.09...)。
官方網站上有各種環境下的 安裝指南,這裡主要介紹 Docker CE 在 Linux 、Windows 10 (PC) 和 macOS 上的安裝。
Ubuntu 安裝 Docker CE
警告:切勿在沒有配置 Docker APT 源的情況下直接使用 apt 指令安裝 Docker.
準備工作
系統要求
Docker CE 支援以下版本的 Ubuntu 作業系統:
- Bionic 18.04 (LTS)
- Artful 17.10 (Docker CE 17.11 Edge +)
- Xenial 16.04 (LTS)
- Trusty 14.04 (LTS)
Docker CE 可以安裝在 64 位的 x86 平台或 ARM 平台上。Ubuntu 發行版中,LTS(Long-Term-Support)長期支援版本,會獲得 5 年的更新維護支援,這樣的版本會更穩定,是以在生産環境中推薦使用 LTS 版本,目前最新的 LTS 版本為 Ubuntu 18.04。
解除安裝舊版本
舊版本的 Docker 稱為 docker 或者 docker-engine,使用以下指令解除安裝舊版本:
$ sudo apt-get remove docker docker-engine docker.io
Ubuntu 14.04 可選核心子產品
從 Ubuntu 14.04 開始,一部分核心子產品移到了可選核心子產品包 (linux-image-extra-*) ,以減少核心軟體包的體積。正常安裝的系統應該會包含可選核心子產品包,而一些裁剪後的系統可能會将其精簡掉。AUFS 核心驅動屬于可選核心子產品的一部分,作為推薦的 Docker 存儲層驅動,一般建議安裝可選核心子產品包以使用 AUFS。
如果系統沒有安裝可選核心子產品的話,可以執行下面的指令來安裝可選核心子產品包:
$ sudo apt-get update$ sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual
Ubuntu 16.04 +
Ubuntu 16.04 + 上的 Docker CE 預設使用 overlay2 存儲層驅動,無需手動配置。
使用 APT 安裝
由于 apt 源使用 HTTPS 以確定軟體下載下傳過程中不被篡改。是以,我們首先需要添加使用 HTTPS 傳輸的軟體包以及 CA 證書。
$ sudo apt-get update$ sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
鑒于國内網絡問題,強烈建議使用國内源,官方源請在注釋中檢視。
為了确認所下載下傳軟體包的合法性,需要添加軟體源的 GPG 密鑰。
$ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -# 官方源# $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
然後,我們需要向 source.list 中添加 Docker 軟體源
$ sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable"# 官方源# $ sudo add-apt-repository # "deb [arch=amd64] https://download.docker.com/linux/ubuntu # $(lsb_release -cs) # stable"
以上指令會添加穩定版本的 Docker CE APT 鏡像源,如果需要測試或每日建構版本的 Docker CE 請将 stable 改為 test 或者 nightly。
安裝 Docker CE
更新 apt 軟體包緩存,并安裝 docker-ce:
$ sudo apt-get update$ sudo apt-get install docker-ce
使用腳本自動安裝
在測試或開發環境中 Docker 官方為了簡化安裝流程,提供了一套便捷的安裝腳本,Ubuntu 系統上可以使用這套腳本安裝:
$ curl -fsSL get.docker.com -o get-docker.sh$ sudo sh get-docker.sh --mirror Aliyun
執行這個指令後,腳本就會自動的将一切準備工作做好,并且把 Docker CE 的 Edge 版本安裝在系統中。
啟動 Docker CE
$ sudo systemctl enable docker$ sudo systemctl start docker
Ubuntu 14.04 請使用以下指令啟動:
$ sudo service docker start
建立 docker 使用者組
預設情況下,docker 指令會使用 Unix socket 與 Docker 引擎通訊。而隻有 root 使用者和 docker 組的使用者才可以通路 Docker 引擎的 Unix socket。出于安全考慮,一般 Linux 系統上不會直接使用 root 使用者。是以,更好地做法是将需要使用 docker 的使用者加入 docker 使用者組。
建立 docker 組:
$ sudo groupadd docker
将目前使用者加入 docker 組:
$ sudo usermod -aG docker $USER
退出目前終端并重新登入,進行如下測試。
測試 Docker 是否安裝正确
$ docker run hello-worldUnable to find image 'hello-world:latest' locallylatest: Pulling from library/hello-worldca4f61b1923c: Pull completeDigest: sha256:be0cd392e45be79ffeffa6b05338b98ebb16c87b255f48e297ec7f98e123905cStatus: Downloaded newer image for hello-world:latestHello from Docker!This message shows that your installation appears to be working correctly.To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal.To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bashShare images, automate workflows, and more with a free Docker ID: https://cloud.docker.com/For more examples and ideas, visit: https://docs.docker.com/engine/userguide/
若能正常輸出以上資訊,則說明安裝成功。
鏡像加速
鑒于國内網絡問題,後續拉取 Docker 鏡像十分緩慢,強烈建議安裝 Docker 之後配置 國内鏡像加速。
CentOS 安裝 Docker CE
警告:切勿在沒有配置 Docker YUM 源的情況下直接使用 yum 指令安裝 Docker.
準備工作
系統要求
Docker CE 支援 64 位版本 CentOS 7,并且要求核心版本不低于 3.10。 CentOS 7 滿足最低核心的要求,但由于核心版本比較低,部分功能(如 overlay2 存儲層驅動)無法使用,并且部分功能可能不太穩定。
解除安裝舊版本
舊版本的 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
使用 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# 官方源# $ sudo yum-config-manager # --add-repo # https://download.docker.com/linux/centos/docker-ce.repo
如果需要測試版本的 Docker CE 請使用以下指令:
$ sudo yum-config-manager --enable docker-ce-test
如果需要每日建構版本的 Docker CE 請使用以下指令:
$ sudo yum-config-manager --enable docker-ce-nightly
安裝 Docker CE
更新 yum 軟體源緩存,并安裝 docker-ce。
$ sudo yum makecache fast$ sudo yum install docker-ce
使用腳本自動安裝
在測試或開發環境中 Docker 官方為了簡化安裝流程,提供了一套便捷的安裝腳本,CentOS 系統上可以使用這套腳本安裝:
$ curl -fsSL get.docker.com -o get-docker.sh$ sudo sh get-docker.sh --mirror Aliyun
執行這個指令後,腳本就會自動的将一切準備工作做好,并且把 Docker CE 的 Edge 版本安裝在系統中。
啟動 Docker CE
$ sudo systemctl enable docker$ sudo systemctl start docker
建立 docker 使用者組
預設情況下,docker 指令會使用 Unix socket 與 Docker 引擎通訊。而隻有 root 使用者和 docker 組的使用者才可以通路 Docker 引擎的 Unix socket。出于安全考慮,一般 Linux 系統上不會直接使用 root 使用者。是以,更好地做法是将需要使用 docker 的使用者加入 docker 使用者組。
建立 docker 組:
$ sudo groupadd docker
将目前使用者加入 docker 組:
$ sudo usermod -aG docker $USER
退出目前終端并重新登入,進行如下測試。
測試 Docker 是否安裝正确
$ docker run hello-worldUnable to find image 'hello-world:latest' locallylatest: Pulling from library/hello-worldca4f61b1923c: Pull completeDigest: sha256:be0cd392e45be79ffeffa6b05338b98ebb16c87b255f48e297ec7f98e123905cStatus: Downloaded newer image for hello-world:latestHello from Docker!This message shows that your installation appears to be working correctly.To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal.To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bashShare images, automate workflows, and more with a free Docker ID: https://cloud.docker.com/For more examples and ideas, visit: https://docs.docker.com/engine/userguide/
若能正常輸出以上資訊,則說明安裝成功。
鏡像加速
鑒于國内網絡問題,後續拉取 Docker 鏡像十分緩慢,強烈建議安裝 Docker 之後配置 國内鏡像加速。
添加核心參數
預設配置下,如果在 CentOS 使用 Docker CE 看到下面的這些警告資訊:
WARNING: bridge-nf-call-iptables is disabledWARNING: bridge-nf-call-ip6tables is disabled
請添加核心配置參數以啟用這些功能。
$ sudo tee -a /etc/sysctl.conf <
然後重新加載 sysctl.conf 即可
$ sudo sysctl -p
來源:jasonblog ,隻作分享,不作任何商業用途,版權歸原作者所有