1. 程式人生 > 其它 >Ubuntu安裝docker(摘自官網,自用)

Ubuntu安裝docker(摘自官網,自用)

在 Ubuntu 上安裝 Docker 引擎(按照紅色編號執行命令)

預計閱讀時間:11分鐘

適用於 Linux 的 Docker 桌面

Docker Desktop 可幫助您在 Mac 和 Windows 上輕鬆構建、共享和執行容器,就像在 Linux 上一樣。Docker 處理複雜的設定並允許您專注於編寫程式碼。由於我們收到了訂閱更新的積極支援,我們已經開始開發Docker Desktop for Linux,這是我們公共路線圖中第二受歡迎的功能請求。如果您對搶先體驗感興趣,請註冊我們的Developer Preview 計劃

要在 Ubuntu 上開始使用 Docker Engine,請確保

滿足先決條件,然後安裝 Docker

先決條件

作業系統要求

要安裝 Docker Engine,您需要以下 Ubuntu 版本之一的 64 位版本:

  • Ubuntu Impish 21.10
  • Ubuntu Hirsute 21.04
  • Ubuntu 焦點 20.04 (LTS)
  • Ubuntu 仿生 18.04 (LTS)

泊塢窗引擎都支援x86_64(或amd64armhfarm64s390x架構。

Ubuntu 16.04 LTS“Xenial Xerus”停產

Ubuntu Linux 16.04 LTS 已於 2021 年 4 月 30 日結束其五年的 LTS 視窗,不再受支援。Docker 不再為此發行版釋出包(包括補丁和安全版本)。

建議在 Ubuntu 16.04 上執行 Docker 的使用者將他們的系統更新到當前支援的 Ubuntu LTS 版本。

解除安裝舊版本

Docker的舊版本被稱為dockerdocker.iodocker-engine。如果安裝了這些,請解除安裝它們:

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

如果apt-get報告沒有安裝這些軟體包,那也沒關係

的內容/var/lib/docker/,包括影象、容器、卷和網路,將被保留。如果您不需要儲存現有資料,並希望從全新安裝開始,請參閱本頁底部解除安裝 Docker 引擎

部分。

支援的儲存驅動程式

Ubuntu 上的 Docker 引擎支援overlay2aufsbtrfs儲存驅動程式。

Docker Engineoverlay2預設使用儲存驅動程式。如果需要改為使用aufs,則需要手動配置。請參閱使用 AUFS 儲存驅動程式

安裝方法

您可以根據需要以不同方式安裝 Docker Engine:

  • 大多數使用者設定 Docker 的儲存庫並從中安裝,以便於安裝和升級任務。這是推薦的方法。

  • 一些使用者下載 DEB 包並手動安裝並完全手動管理升級。這在某些情況下非常有用,例如在無法訪問網際網路的氣隙系統上安裝 Docker。

  • 在測試和開發環境中,部分使用者選擇使用自動化便捷指令碼來安裝Docker。

使用儲存庫安裝

在新主機上首次安裝 Docker Engine 之前,您需要設定 Docker 儲存庫。之後,您可以從儲存庫安裝和更新 Docker。

設定儲存庫

  1. 更新apt包索引並安裝包以允許apt通過 HTTPS 使用儲存庫:

    $ sudo apt-get update
    
    $ sudo apt-get install ca-certificates curl gnupg lsb-release
    
  2. 新增Docker官方的GPG金鑰:

    $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    
  3. 使用以下命令設定穩定儲存庫。要新增夜間測試儲存庫,請在以下命令中的單詞後新增單詞nightlytest(或兩者)stable瞭解nightlytest頻道

    $ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    

安裝 Docker 引擎

  1. 更新apt包索引,安裝最新版本的Docker Engine和containerd,或者到下一步安裝特定版本:

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

    有多個 Docker 儲存庫?

    如果您啟用了多個 Docker 儲存庫,則在apt-get installapt-get update命令中未指定版本的情況下安裝或更新始終會安裝可能的最高版本,這可能不適合您的穩定性需求。

  2. 要安裝特定版本的 Docker Engine,請在 repo 中列出可用版本,然後選擇並安裝:

    一個。列出您的儲存庫中可用的版本:

    $ apt-cache madison docker-ce
    
      docker-ce | 5:18.09.1~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu  xenial/stable amd64 Packages
      docker-ce | 5:18.09.0~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu  xenial/stable amd64 Packages
      docker-ce | 18.06.1~ce~3-0~ubuntu       | https://download.docker.com/linux/ubuntu  xenial/stable amd64 Packages
      docker-ce | 18.06.0~ce~3-0~ubuntu       | https://download.docker.com/linux/ubuntu  xenial/stable amd64 Packages
    

    使用第二列中的版本字串安裝特定版本,例如5:18.09.1~3-0~ubuntu-xenial.

    $ sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
    
  3. 通過執行hello-world映像驗證 Docker Engine 是否已正確安裝

    $ sudo docker run hello-world
    

    此命令下載測試映像並在容器中執行它。當容器執行時,它會列印一條訊息並退出。

Docker 引擎已安裝並正在執行。docker組已建立,但未向其中新增任何使用者。您需要使用sudo來執行 Docker 命令。繼續Linux postinstall以允許非特權使用者執行 Docker 命令和其他可選配置步驟。

升級 Docker 引擎

要升級 Docker Engine,請先執行sudo apt-get update,然後按照安裝說明,選擇要安裝的新版本。

從包安裝

如果您無法使用 Docker 的儲存庫來安裝 Docker 引擎,您可以下載該.deb版本檔案並手動安裝。每次要升級 Docker 時都需要下載一個新檔案。

  1. https://download.docker.com/linux/ubuntu/dists/選擇你的Ubuntu版本,然後瀏覽pool/stable/,選擇amd64armhfarm64,或s390x,並下載.deb檔案要安裝多克爾引擎版本。

    筆記

    要安裝每晚測試(預釋出)包,stable請將上述 URL 中的單詞更改nightlytest瞭解nightlytest頻道

  2. 安裝 Docker Engine,將下面的路徑更改為您下載 Docker 包的路徑。

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

    Docker 守護程序自動啟動。

  3. 通過執行hello-world映像驗證 Docker Engine 是否已正確安裝

    $ sudo docker run hello-world
    

    此命令下載測試映像並在容器中執行它。當容器執行時,它會列印一條訊息並退出。

Docker 引擎已安裝並正在執行。docker組已建立,但未向其中新增任何使用者。您需要使用sudo來執行 Docker 命令。繼續Linux 的安裝後步驟以允許非特權使用者執行 Docker 命令和其他可選配置步驟。

升級 Docker 引擎

要升級 Docker Engine,請下載更新的包檔案並重復安裝過程,指向新檔案。

使用便利指令碼安裝

Docker 在get.docker.com提供了一個方便的指令碼,可以快速且非互動式地將 Docker 安裝到開發環境中。不建議將便捷指令碼用於生產環境,但可以用作示例來建立適合您需求的配置指令碼。另請參閱使用儲存庫安裝步驟以瞭解使用軟體包儲存庫進行安裝的安裝步驟。該指令碼的原始碼是開源的,可以docker-install在 GitHub 上儲存庫中找到

在本地執行之前,請務必檢查從 Internet 下載的指令碼。在安裝之前,讓自己熟悉便利指令碼的潛在風險和限制:

  • 指令碼需要rootsudo特權才能執行。
  • 該指令碼會嘗試檢測您的 Linux 發行版和版本併為您配置包管理系統,並且不允許您自定義大多數安裝引數。
  • 該指令碼無需確認即可安裝依賴項和建議。這可能會安裝大量軟體包,具體取決於主機的當前配置。
  • 預設情況下,該指令碼會安裝 Docker、containerd 和 runc 的最新穩定版本。使用此指令碼配置機器時,可能會導致 Docker 的主要版本意外升級。在部署到生產系統之前,始終在測試環境中測試(主要)升級。
  • 該指令碼並非旨在升級現有的 Docker 安裝。使用指令碼更新現有安裝時,依賴項可能不會更新到預期版本,從而導致使用過時的版本。

提示:執行前預覽指令碼步驟

您可以執行帶有DRY_RUN=1選項的指令碼以瞭解指令碼在安裝過程中將執行的步驟:

$ curl -fsSL https://get.docker.com -o get-docker.sh
$ DRY_RUN=1 sh ./get-docker.sh

此示例從get.docker.com下載指令碼並執行它以在 Linux 上安裝 Docker 的最新穩定版本:

$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh
Executing docker install script, commit: 7cae5f8b0decc17d6571f9f52eb840fbc13b2737
<...>

安裝了 Docker。docker服務在基於 Debian 的發行版上自動啟動。RPM基於發行版的發行版上,例如 CentOS、Fedora、RHEL 或 SLES,您需要使用適當的systemctlorservice命令手動啟動它如訊息所示,預設情況下,非 root 使用者無法執行 Docker 命令。

以非特權使用者身份使用 Docker,還是以無根模式安裝?

安裝指令碼需要root或有sudo許可權安裝和使用 Docker。如果要授予非 root 使用者訪問 Docker 的許可權,請參閱Linux 的安裝後步驟Docker 也可以在沒有root特權的情況下安裝,或配置為在無根模式下執行。有關在無根模式下執行 Docker 的說明,請參閱以非 root 使用者身份執行 Docker 守護程式(無根模式)

安裝預發行版

Docker 還在test.docker.com提供了一個方便的指令碼來在 Linux 上安裝 Docker 的預釋出版本。此指令碼與 中的指令碼等效get.docker.com,但將您的包管理器配置為從我們的包儲存庫啟用“測試”通道,其中包括 Docker 的穩定版和預釋出版(測試版、釋出候選版)。使用此指令碼可以提前訪問新版本,並在它們穩定釋出之前在測試環境中對其進行評估。

要從“測試”頻道在 Linux 上安裝最新版本的 Docker,請執行:

$ curl -fsSL https://test.docker.com -o test-docker.sh
$ sudo sh test-docker.sh
<...>

使用便利指令碼後升級 Docker

如果您使用便利指令碼安裝 Docker,則應直接使用您的包管理器升級 Docker。重新執行便利指令碼沒有任何好處,如果它嘗試重新新增已經新增到主機的儲存庫,它可能會導致問題。

解除安裝 Docker 引擎

  1. 解除安裝 Docker Engine、CLI 和 Containerd 包:

    $ sudo apt-get purge docker-ce docker-ce-cli containerd.io
    
  2. 主機上的映像、容器、卷或自定義配置檔案不會自動刪除。刪除所有映象、容器和卷:

    $ sudo rm -rf /var/lib/docker
    $ sudo rm -rf /var/lib/containerd
    

您必須手動刪除任何已編輯的配置檔案。