如何在 Ubuntu 18.04 上安裝 Docker

Docker 是一種輕量級的操作系統級虛擬化解決方案,允許您在編排工具的幫助下,在單個主機或一組服務器上同時運行多個容器。 Docker 容器使用 Kernel 相互隔離 控制組命名空間.

在本教程帖子中,我們將了解在 Ubuntu 18.04 LTS 上安裝 docker 的不同方法。

Docker 提供了一個基於映像的部署模型,它可以輕鬆地將應用程序及其所有依賴項打包並在多個環境中共享。 Docker 還自動在此容器環境中部署應用程序。 在我們看 Docker 的安裝和使用之前,讓我們定義一些在 Docker 容器世界中常見的術語。

  • Docker 引擎:這是一個管理所有 Docker 對象的服務器守護進程——網絡、容器、存儲、圖像等 Docker 引擎還提供應用程序用來與守護進程通信的 REST API。
  • Docker 鏡像 – 圖像是用於在 docker 引擎上創建容器的只讀模板。
  • 容器 – 這是一個基於 Docker 鏡像的運行實例。 每個容器都有一個唯一的ID
  • 登記處 – Docker 註冊表存儲已創建的圖像。 它可以是受限存儲庫(私有)或公共存儲庫。

在 Ubuntu 上安裝 Docker

在 Ubuntu 18.04 上安裝 Docker 有三種方式,分別是:

  1. 從 apt 存儲庫安裝 Docker
  2. 從編譯好的 Debian 包安裝 Docker
  3. 使用自動化腳本安裝 Docker edge

1)從apt存儲庫安裝Docker

在我們添加 Docker 存儲庫之前,請確保沒有舊的 docker 包,除非您想升級而不是全新安裝。

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

請注意,Docker CE 包現在稱為 docker-ce。

安裝依賴包

要允許 apt 通過 https 使用存儲庫,請安裝以下軟件包:

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

安裝成功後,繼續添加 docker apt 存儲庫。

導入官方 Docker gpg 密鑰

要安裝 docker 簽名的軟件包,您需要導入 gpg 密鑰:

$ sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
OK

添加 docker-ce 穩定存儲庫

現在讓我們使用 add-apt-repository 命令添加 docker 存儲庫。

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

Hit:1 https://security.ubuntu.com/ubuntu bionic-security InRelease
Hit:3 https://repos.influxdata.com/ubuntu bionic InRelease 
Get:2 https://download.docker.com/linux/ubuntu bionic InRelease [64.4 kB] 
Hit:4 https://mirrors.digitalocean.com/ubuntu bionic InRelease 
Get:5 https://mirrors.digitalocean.com/ubuntu bionic-updates InRelease [83.2 kB] 
Hit:6 https://mirror.zol.co.zw/mariadb/repo/10.3/ubuntu bionic InRelease 
Get:7 https://mirrors.digitalocean.com/ubuntu bionic-backports InRelease [74.6 kB] 
Hit:8 https://packagecloud.io/grafana/stable/debian stretch InRelease 
Fetched 222 kB in 1s (149 kB/s)
Reading package lists... Done

上面的命令將添加一行 /etc/apt/sources.list

deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable

這是從這裡下載 docker 包的地方。

更新apt索引並安裝docker

將存儲庫添加到系統後

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

啟動並啟用服務以在啟動時啟動

安裝成功後,您應該可以使用 systemctl 命令啟動 docker 服務。

$ sudo systemctl start docker
$ sudo systemctl enable docker
$ sudo systemctl is-enabled docker
enabled

使用以下命令檢查服務的狀態:

$ sudo systemctl status docker
● docker.service - Docker Application Container Engine
 Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
 Active: active (running) since Tue 2018-06-05 19:37:30 UTC; 39min ago
 Docs: https://docs.docker.com
 Main PID: 4235 (dockerd)
 Tasks: 18
 CGroup: /system.slice/docker.service
 ├─4235 /usr/bin/dockerd -H fd://
 └─4284 docker-containerd --config /var/run/docker/containerd/containerd.toml

Jun 05 19:37:30 dokcer.linoxide.com  dockerd[4235]: time="2018-06-05T19:37:30.458294292Z" level=warning msg="Your kernel does not support swap memory limit"
Jun 05 19:37:30 docker.linoxide.com dockerd[4235]: time="2018-06-05T19:37:30.458346988Z" level=warning msg="Your kernel does not support cgroup rt period"
Jun 05 19:37:30 docker.linoxide.com dockerd[4235]: time="2018-06-05T19:37:30.458358517Z"

以非 root 用戶身份運行 Docker

如果您想以非 root 用戶身份使用 Docker,您現在應該考慮使用以下內容將您的用戶添加到“docker”組:

$ sudo  getent group docker
docker:x:998:
$ sudo usermod -aG docker <username>

例如

$ sudo usermod -aG docker jmutai

對於無需註銷即可立即更改組:

$ sudo gpasswd -a username groupname

例如

$ sudo gpasswd -a jmutai docker

2) 安裝 Docker .deb 包

另一種安裝方法是下載適用於 Ubuntu 18.04 的最新版 Docker。 這種方法的問題是每次要升級Docker CE時都需要下載一個新文件。

前往 https://download.docker.com/linux/ubuntu/dists/,選擇您的 Ubuntu 版本,然後瀏覽到 pool/stable/,然後選擇您的操作系統架構。 您需要下載要安裝的 Docker 版本的 .deb 文件。

通過運行以下命令安裝軟件包:

$ sudo dpkg -i /path/to/package.deb

3) 使用腳本安裝 Docker edge 版本

Docker 在以下位置提供了方便的腳本 獲取.docker.com 用於安裝邊緣版本的 docker。 此版本不推薦用於生產目的,但可用於測試和通用目的。 請注意,腳本需要 root 或 sudo 運行權限:

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

該腳本將為您完成所有工作,無需手動操作。 只有當您想以非 root 用戶身份使用 Docker 時,您現在應該考慮將您的用戶添加到“docker”組,例如:

$ sudo usermod -aG docker your-user

使用 docker version 命令檢查安裝的 docker 版本:

$ sudo docker version
Client:
Version: 18.05.0-ce
API version: 1.37
Go version: go1.9.5
Git commit: f150324
Built: Wed May 9 22:16:13 2018
OS/Arch: linux/amd64
Experimental: false
Orchestrator: swarm

Server:
Engine:
Version: 18.05.0-ce
API version: 1.37 (minimum version 1.12)
Go version: go1.9.5
Git commit: f150324
Built: Wed May 9 22:14:23 2018
OS/Arch: linux/amd64
Experimental: false

在 Ubuntu 上使用 Docker

現在我們已準備好所需的一切,讓我們考慮一些 docker 操作來幫助您入門。 我們將下載兩個 docker 鏡像,然後從它們創建容器。 然後稍後銷毀這些容器。

默認情況下,docker 鏡像是從 docker 公共存儲庫下載的,無需身份驗證即可拉取公開共享的鏡像。 讓我們下載 Ubuntu 18.04 和 CentOS 7 鏡像。 docker pull 命令用於此:

$ sudo docker pull ubuntu:18.04
18.04: Pulling from library/ubuntu
a48c500ed24e: Pull complete 
1e1de00ff7e1: Pull complete 
0330ca45a200: Pull complete 
471db38bcfbf: Pull complete 
0b4aba487617: Pull complete 
Digest: sha256:c8c275751219dadad8fa56b3ac41ca6cb22219ff117ca98fe82b42f24e1ba64e
Status: Downloaded newer image for ubuntu:18.04

$ sudo docker pull centos:latest
latest: Pulling from library/centos
7dc0dca2b151: Pull complete 
Digest: sha256:b67d21dfe609ddacf404589e04631d90a342921e81c40aeaf3391f6717fa5322
Status: Downloaded newer image for centos:latest

檢查可用圖像:

$ sudo  docker images
REPOSITORY     TAG     IMAGE ID C     REATED        SIZE
centos         latest  49f7960eb7e4   22 hours ago  200MB
ubuntu         18.04   452a96d81c30   5 weeks ago   79.6MB

從 Docker 鏡像創建容器

docker run 命令用於運行 docker 容器。 容器是 docker 鏡像的運行實例。 也可以使用創建自定義泊塢窗圖像 文件. 請參閱有關如何編寫自己的 Dockerfile 的鏈接。

這 example 下面將創建一個名為的容器 ubuntu18.04 來自之前下載的 Ubuntu 18.04 映像。

$ docker run -it --rm --name ubuntu-cont ubuntu:18.04 /bin/bash
root@f4da5e088c9c:/#

使用的選項是:

  • -它 : 獲取交互式 shell 會話
  • – R M :這會指示 docker 在退出時刪除容器
  • – 名稱: 用於指定容器的名稱。 給定的名稱是 ubuntu-cont
  • Ubuntu:18.04:這是我們正在從中創建容器的 docker 鏡像的名稱
  • /斌/bash : 在容器上執行的命令

如果您使用退出容器外殼 出口 命令或 ctrl+d

另請閱讀:

  • 2 種通過 SSH 連接到正在運行的 Docker 容器的方法
  • 如何在不使用 Docker 的情況下使用 Docker sudo 在 Ubuntu 上
  • 備忘單中的完整 Docker 命令列表

通過運行 Docker 引擎,您可以開始使用 docker 來了解它的來龍去脈。 我們有關於 Linoxide 的很好的指南來幫助您入門。 Docker 文檔 也是一個很好的起點。