1. 程式人生 > 實用技巧 >Ubuntu 安裝Docker CE

Ubuntu 安裝Docker CE

Ubuntu 安裝Docker CE

準備工作

  • 系統要求
    • ununtu 16.04 LTS
  • 解除安裝舊版本

如果安裝有舊版本的docker(舊版本的 Docker 稱為docker或者docker-engine) ,先解除安裝它

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

1. 安裝

1.1 使用apt安裝

由於apt源使用 HTTPS 以確保軟體下載過程中不被篡改。因此,我們首先需要新增使用 HTTPS 傳輸的軟體包以及 CA 證書

$ sudo apt-get update

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

為了確認所下載軟體包的合法性,需要新增軟體源的 GPG 金鑰。

鑑於國內網路問題,建議使用國內源,註釋部分是官方源

# 官方源
# $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# 中科大的源
$ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

下面新增 docker 軟體源

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

以上命令會新增穩定版本的 Docker CE APT 映象源,如果需要測試或每日構建版本的 Docker CE 請將 stable 改為 test 或者 nightly。

更新 apt 軟體包快取,並安裝docker-ce

$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io

注:也可以指定版本安裝

# $ apt-cache madison docker-ce
# $ sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
$ sudo docker run hello-world

1.2 手動安裝

# https://download.docker.com/linux/ubuntu/dists/ 在這裡選擇下載安裝包
$ sudo dpkg -i /path/to/package.deb

1.3 使用指令碼自動安裝

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

1.4 測試安裝成功

2 使用非root使用者管理 docker

2.1 建立 docker 使用者組

現在安裝完成,會自動建立docker 使用者組

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

重新登入,進行測試

$ newgrp docker 
$ docker run hello-world

如果遇到以下錯誤提示:

WARNING: Error loading config file: /home/user/.docker/config.json -
stat /home/user/.docker/config.json: permission denied

兩個方法解決:

  1. 把 使用者目錄下的.docker資料夾刪除
  2. 使用下面的命令修復
$ sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
$ sudo chmod g+rwx "$HOME/.docker" -R

3 配置docker 自啟

$ sudo systemctl enable docker
# 取消自啟
$ sudo systemctl disable docker

4 配置映象加速

前面看到了我們使用映象時,映象拉取特別慢,有些甚至無法獲取。這時候我們可以配置映象加速。

國內一些雲服務商提供了國內的映象加速服務

如:

4.1 配置

  • 新的版本修改配置檔案/etc/docker/daemon.json
{
  "registry-mirrors": [
    "https://dockerhub.azk8s.cn",
    "https://hub-mirror.c.163.com",
    "https://ktrsh7na.mirror.aliyuncs.com"
  ]
}
  • 老版教程 編輯/etc/systemd/system/multi-user.target.wants/docker.service檔案
# 找到  ExecStart= 追加  --registry-mirror=https://ktrsh7na.mirror.aliyuncs.com

注意: 上面提到的兩種方法,只能使用一種,不能同時修改

然後重啟docker服務

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

下面檢查加速器是否生效

$ docker info

4.2 應用

國內無法直接獲取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

5 解除安裝docker

$ sudo apt-get purge docker-ce
# 上面命令不會自動刪除 主機上的映象、容器、卷或自定義配置檔案。 刪除所有映象、容器和卷
$ sudo rm -rf /var/lib/docker