Docker 安裝與部署

Ubuntu 安裝 Docker CE

切勿在沒有配置 Docker APT 源的情況下直接使用 apt 命令安裝 Docker.

  1. 系統準備

Docker CE 支持以下版本的 Ubuntu 操作系統:
- Disco 19.04
- Cosmic 18.10
- Bionic 18.04 (LTS)
- Xenial 16.04 (LTS)

Docker CE 可以安裝在 64 位的 x86 平臺或 ARM 平臺上。Ubuntu 發行版中,LTS(Long-Term-Support)長期支持版本,會獲得 5 年的升級維護支持,這樣的版本會更穩定,因此在生產環境中推薦使用 LTS 版本

  1. 卸載舊版本

舊版本的 Docker 稱爲 docker 或者 docker-engine,使用以下命令卸載舊版本:

$ sudo apt-get remove docker \
               docker-engine \
               docker.io
  1. 使用 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

  1. 安裝 Docker CE

更新 apt 軟件包緩存,並安裝 docker-ce:

$ sudo apt-get update
$ sudo apt-get install docker-ce
  1. 使用腳本自動安裝

在測試或開發環境中 Docker 官方爲了簡化安裝流程,提供了一套便捷的安裝腳本,Ubuntu 系統上可以使用這套腳本安裝:

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

執行這個命令後,腳本就會自動的將一切準備工作做好,並且把 Docker CE 的 Edge 版本安裝在系統中。

  1. 啓動 Docker CE
$ sudo systemctl enable docker
$ sudo systemctl start docker
  1. 建立 docker 用戶組

默認情況下,docker 命令會使用 Unix socket 與 Docker 引擎通訊。而只有 root 用戶和 docker 組的用戶纔可以訪問 Docker 引擎的 Unix socket。出於安全考慮,一般 Linux 系統上不會直接使用 root 用戶。因此,更好地做法是將需要使用 docker 的用戶加入 docker 用戶組。

建立 docker 組:

$ sudo groupadd docker

將當前用戶加入 docker 組:

$ sudo usermod -aG docker $USER

退出當前終端並重新登錄,進行如下測試。

  1. 測試 Docker 是否安裝正確
$ docker run hello-world

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
d1725b59e92d: Pull complete
Digest: sha256:0add3ace90ecb4adbf7777e9aacf18357296e799f81cabc9fde470971e499788
Status: Downloaded newer image for hello-world:latest

Hello 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 bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

若能正常輸出以上信息,則說明安裝成功。

Windows 10 PC 安裝 Docker Desktop CE

  1. 系統要求
    Docker Desktop for Windows 支持 64 位版本的 Windows 10 Pro,且必須開啓 Hyper-V。
  2. 安裝
    點擊以下鏈接下載 Stable 或 Edge 版本的 Docker Desktop for Windows。
    下載好之後雙擊 Docker Desktop Installer.exe 開始安裝。
  3. 運行
    在 Windows 搜索欄輸入 Docker 點擊 Docker for Windows 開始運行。
    在這裏插入圖片描述
    Docker CE 啓動之後會在 Windows 任務欄出現鯨魚圖標。
    在這裏插入圖片描述
    等待片刻,點擊 Got it 開始使用 Docker CE。
    在這裏插入圖片描述

macOS 安裝 Docker Desktop CE

  1. 系統要求
    Docker Desktop for Mac 要求系統最低爲 macOS El Capitan 10.11。
  2. 安裝
    使用 Homebrew 安裝
    Homebrew 的 Cask 已經支持 Docker Desktop for Mac,因此可以很方便的使用 Homebrew Cask 來進行安裝:
$ brew cask install docker
  1. 手動下載安裝
    如果需要手動下載,請點擊以下鏈接下載 Stable 或 Edge 版本的 Docker Desktop for Mac。
    如同 macOS 其它軟件一樣,安裝也非常簡單,雙擊下載的 .dmg 文件,然後將那隻叫 Moby 的鯨魚圖標拖拽到 Application 文件夾即可(其間需要輸入用戶密碼)。
    在這裏插入圖片描述
  2. 運行
    從應用中找到 Docker 圖標並點擊運行。
    在這裏插入圖片描述
    運行之後,會在右上角菜單欄看到多了一個鯨魚圖標,這個圖標表明瞭 Docker 的運行狀態。
    在這裏插入圖片描述
    第一次點擊圖標,可能會看到這個安裝成功的界面,點擊 “Got it!” 可以關閉這個窗口。
    在這裏插入圖片描述
    以後每次點擊鯨魚圖標會彈出操作菜單。
    在這裏插入圖片描述
    啓動終端後,通過命令可以檢查安裝後的 Docker 版本。
$ docker --version
Docker version 19.03.1, build 74b1e89
$ docker-compose --version
docker-compose version 1.24.1, build 4667896b
$ docker-machine --version
docker-machine version 0.16.1, build cce350d7

如果 docker version、docker info 都正常的話,可以嘗試運行一個 Nginx 服務器:

$ docker run -d -p 80:80 --name webserver nginx

服務運行後,可以訪問 http://localhost,如果看到了 “Welcome to nginx!”,就說明 Docker Desktop for Mac 安裝成功了。

在這裏插入圖片描述
要停止 Nginx 服務器並刪除執行下面的命令:

$ docker stop webserver
$ docker rm webserver

鏡像加速

  1. Ubuntu
    國內從 Docker Hub 拉取鏡像有時會遇到困難,此時可以配置鏡像加速器。國內很多雲服務商都提供了國內加速器服務,例如:
  • Azure 中國鏡像 https://dockerhub.azk8s.cn
  • 阿里雲加速器(需登錄賬號獲取)
  • 七牛雲加速器 https://reg-mirror.qiniu.com

由於鏡像服務可能出現宕機,建議同時配置多個鏡像。

國內各大雲服務商均提供了 Docker 鏡像加速服務,建議根據運行 Docker 的雲平臺選擇對應的鏡像加速服務,具體請參考官方文檔。

我們以 Azure 中國鏡像 https://dockerhub.azk8s.cn 爲例進行介紹。

Ubuntu 16.04+、Debian 8+、CentOS 7

對於使用 systemd 的系統,請在 /etc/docker/daemon.json 中寫入如下內容(如果文件不存在請新建該文件)

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

注意,一定要保證該文件符合 json 規範,否則 Docker 將不能啓動。 之後重新啓動服務。

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

注意:如果您之前查看舊教程,修改了 docker.service文件內容,請去掉您添加的內容(–registry-mirror=https://dockerhub.azk8s.cn)。

  1. Windows 10
    對於使用 Windows 10 的系統,在系統右下角托盤 Docker 圖標內右鍵菜單選擇 Settings,打開配置窗口後左側導航菜單選擇 Daemon。在 Registry mirrors 一欄中填寫加速器地址 https://dockerhub.azk8s.cn,之後點擊 Apply 保存後 Docker 就會重啓並應用配置的鏡像地址了

  2. macOS
    對於使用 macOS 的用戶,在任務欄點擊 Docker Desktop 應用圖標 -> Perferences… -> Daemon -> Registry mirrors。在列表中填寫加速器地址 https://dockerhub.azk8s.cn。修改完成之後,點擊 Apply & Restart 按鈕,Docker 就會重啓並應用配置的鏡像地址了。

檢查加速器是否生效

執行 $ docker info,如果從結果中看到了如下內容,說明配置成功。

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

gcr.io 鏡像

國內無法直接獲取 gcr.io/* 鏡像,我們可以將 gcr.io//: 替換爲 gcr.azk8s.cn//: ,例如

# $ docker pull gcr.io/google_containers/hyperkube-amd64:v1.9.2
$ docker pull gcr.azk8s.cn/google_containers/hyperkube-amd64:v1.9.2
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章