不卡av在线播放_欧美成人AU在线看_亚洲一区二区 视频_五月天亚洲无码伊人

Article / 文章中心

如何在 Ubuntu 22.04 LTS 中安裝 Docker 和 Docker Compose

發(fā)布時(shí)間:2022-07-28 點(diǎn)擊數(shù):888
在 Ubuntu 中使用 Docker Compose 安裝 Docker 引擎的分步指導(dǎo)。

如何在 Ubuntu 22.04 LTS 中安裝 Docker 和 Docker Compose(圖1)

在這篇文章中,我們將會(huì)明白 Docker 是什么,如何 在 Ubuntu 中安裝 Docker 引擎 。此外,我們也將會(huì)明白如何 安裝 Docker Compose ,它是一個(gè)定義并運(yùn)行多容器的 Docker 應(yīng)用。

我們已經(jīng)在 Ubuntu 22.04 LTS 中正式的測(cè)試了這份指南。然而,它也應(yīng)該對(duì)舊版本如 20.04 LTS 和 18.04 LTS 有效。為了更好的安全性和穩(wěn)定性,我推薦你使用最新的版本 —— Ubuntu 22.04 LTS 。

什么是 Docker ?

Docker 是一個(gè)快捷、輕便的系統(tǒng)級(jí)虛擬化技術(shù),開(kāi)發(fā)者和系統(tǒng)管理員可以使用它構(gòu)建具備所有必要依賴(lài)項(xiàng)的應(yīng)用程序,并將其作為一個(gè)包發(fā)布。

Docker 與其他如 VMWare 、Xen 、以及 VirtualBox 等工具的虛擬化方式不同,每個(gè)虛擬機(jī)不需要單獨(dú)的客戶(hù)操作系統(tǒng)。

所有的 Docker 容器有效地共享同一個(gè)主機(jī)系統(tǒng)內(nèi)核。每個(gè)容器都在同一個(gè)操作系統(tǒng)中的隔離用戶(hù)空間中運(yùn)行。

Docker 容器可以在任何 Linux 版本上運(yùn)行。比如說(shuō)你使用 Fedora ,我用 Ubuntu 。我們能相互開(kāi)發(fā)、共享并分發(fā) Docker 鏡像。

你無(wú)需擔(dān)心操作系統(tǒng)、軟件以及自定義設(shè)置,任何事都不用擔(dān)心。只要我們的主機(jī)安裝了 Docker ,就能持續(xù)開(kāi)發(fā)。簡(jiǎn)言之,Docker 能夠在任何地方運(yùn)行!

前文中你讀到了兩個(gè)詞:Docker 鏡像 和 Docker 容器 ,或許你在想它們的區(qū)別。

通俗地說(shuō),Docker 鏡像是一個(gè)描述容器應(yīng)該如何表現(xiàn)的文件,而 Docker 容器是 Docker 鏡像的運(yùn)行(或停止)狀態(tài)。

希望你能夠理解 Docker 的基礎(chǔ)概念。更多細(xì)節(jié),你可以參考文章末尾的 Docker 官方指導(dǎo)手冊(cè)。

Docker 依賴(lài)項(xiàng)

為了安裝并配置 Docker ,你的系統(tǒng)必須滿(mǎn)足下列最低要求:

  1. 64 位 Linux 或 Windows 系統(tǒng)
  2. 如果使用 Linux ,內(nèi)核版本必須不低于 3.10
  3. 能夠使用sudo 權(quán)限的用戶(hù)
  4. 在你系統(tǒng) BIOS 上啟用了 VT(虛擬化技術(shù))支持 on your system BIOS(參考:如何查看 CPU 支持 虛擬化技術(shù)(VT)
  5. 你的系統(tǒng)應(yīng)該聯(lián)網(wǎng)

在 Linux ,在終端上運(yùn)行以下命令驗(yàn)證內(nèi)核以及架構(gòu)詳細(xì)信息:

復(fù)制
    $ uname -a1.

輸出樣例:

復(fù)制
    Linux Ubuntu22CT 5.15.35-3-pve #1 SMP PVE 5.15.35-6 (Fri, 17 Jun 2022 13:42:35 +0200) x86_64 x86_64 x86_64 GNU/Linux1.

正如上面你看到的那樣,我的 Ubuntu 系統(tǒng)內(nèi)核版本是 5.15.35-3-pve 并且系統(tǒng)架構(gòu)是 64 位x86_64 x86_64 x86_64 GNU/Linux)。


注意: 這里,我在 Proxmox 中使用 Ubuntu 22.04 容器。這是你看到上方內(nèi)核版本中有 “pve” 字符的原因。如果你正在使用 Ubuntu 實(shí)體(或者虛擬)機(jī),你將看到系統(tǒng)版本為 5.15.35-3-generic 。


內(nèi)核版本需要不低于最低要求的版本,并且是 64 位機(jī)器。這樣不會(huì)有任何問(wèn)題,我們能順利安裝并使用 Docker 。

請(qǐng)注意你使用哪一個(gè) Ubuntu 系統(tǒng)不重要。并且你使用 Ubuntu 桌面或服務(wù)器版本,亦或者其他 Ubuntu 變種如 Lubuntu 、Kubuntu 、Xubuntu ,都不重要。

只要你的系統(tǒng)內(nèi)核版本不低于 3.10 ,并且是 64 位系統(tǒng),Docker 都會(huì)正常運(yùn)行。

在 Ubuntu 22.04 LTS 中安裝 Docker

首先,更新你的 Ubuntu 系統(tǒng)。

1、更新 Ubuntu

打開(kāi)終端,依次運(yùn)行下列命令:

復(fù)制
    $ sudo apt update    $ sudo apt upgrade    $ sudo apt full-upgrade1.2.3.

2、添加 Docker 庫(kù)

首先,安裝必要的證書(shū)并允許 apt 包管理器使用以下命令通過(guò) HTTPS 使用存儲(chǔ)庫(kù):

復(fù)制
    $ sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release1.

然后,運(yùn)行下列命令添加 Docker 的官方 GPG 密鑰:

復(fù)制
    $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg1.

添加 Docker 官方庫(kù):

復(fù)制
    $ 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/null1.

使用命令更新 Ubuntu 源列表:

復(fù)制
    $ sudo apt update1.

3、安裝 Docker

最后,運(yùn)行下列命令在 Ubuntu 22.04 LTS 服務(wù)器中安裝最新 Docker CE:

復(fù)制
    $ sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin1.

Install Docker In Ubuntu

Install Docker In Ubuntu

當(dāng)然你也可以安裝其他版本 Docker 。運(yùn)行下列命令檢查可以安裝的 Docker 版本:

復(fù)制
    $ apt-cache madison docker-ce1.

輸出樣例:

復(fù)制
    docker-ce | 5:20.10.17~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
    docker-ce | 5:20.10.16~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
    docker-ce | 5:20.10.15~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
    docker-ce | 5:20.10.14~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
    docker-ce | 5:20.10.13~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages1.2.3.4.5.

你可以挑選上面列表中的任何版本進(jìn)行安裝。例如,安裝 5:20.10.16~ 3-0 ~ubuntu-jammy 這個(gè)版本,運(yùn)行:

復(fù)制
    $ sudo apt install docker-ce=5:20.10.16~3-0~ubuntu-jammy docker-ce-cli=5:20.10.16~3-0~ubuntu-jammy containerd.io1.

安裝完成后,運(yùn)行如下命令驗(yàn)證 Docker 服務(wù)是否在運(yùn)行:

復(fù)制
    $ systemctl status docker1.

你會(huì)看到類(lèi)似下面的輸出:

復(fù)制
    * docker.service - Docker Application Container Engine
         Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
         Active: active (running) since Mon 2022-06-27 13:07:43 UTC; 3min 4s ago
    TriggeredBy: * docker.socket
           Docs: https://docs.docker.com
       Main PID: 2208 (dockerd)
          Tasks: 8
         Memory: 29.6M
            CPU: 126ms
         CGroup: /system.slice/docker.service                 `-2208 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock    Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.071453522Z" level=info msg="ccResolverWrapper: sending update to cc: {[{unix:>    Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.071459974Z" level=info msg="ClientConn switching balancer to \"pick_first\"" >    Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.130989294Z" level=info msg="Loading containers: start."    Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.187439756Z" level=info msg="Default bridge (docker0) is assigned with an IP a>    Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.235966874Z" level=info msg="Loading containers: done."    Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.240149866Z" level=warning msg="Not using native diff for overlay2, this may c>    Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.240281966Z" level=info msg="Docker daemon" commit=a89b842 graphdriver(s)=over>    Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.240386856Z" level=info msg="Daemon has completed initialization"    Jun 27 13:07:43 Ubuntu22CT systemd[1]: Started Docker Application Container Engine.    Jun 27 13:07:43 Ubuntu22CT dockerd[2208]: time="2022-06-27T13:07:43.276336600Z" level=info msg="API listen on /run/docker.sock"1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.

好極了!Docker 服務(wù)已啟動(dòng)并運(yùn)行!

如果沒(méi)有運(yùn)行,運(yùn)行以下命令運(yùn)行 Docker 服務(wù):

復(fù)制
    $ sudo systemctl start docker1.

使 Docker 服務(wù)在每次重啟時(shí)自動(dòng)啟動(dòng):

復(fù)制
    $ sudo systemctl enable docker1.

可以使用以下命令查看已安裝的 Docker 版本:

復(fù)制
    $ sudo docker version1.

輸出樣例:

復(fù)制
    Client: Docker Engine - Community
      Version:           20.10.17
      API version:       1.41
      Go version:        go1.17.11
      Git commit:        100c701
      Built:             Mon Jun  6 23:02:46 2022
      OS/Arch:           linux/amd64
      Context:           default
      Experimental:      true
    Server: Docker Engine - Community
      Engine:
        Version:          20.10.17
        API version:      1.41 (minimum version 1.12)
        Go version:       go1.17.11
        Git commit:       a89b842
      Built:            Mon Jun  6 23:00:51 2022
        OS/Arch:          linux/amd64
        Experimental:     false
      containerd:
        Version:          1.6.6
        GitCommit:        10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1
      runc:
        Version:          1.1.2
        GitCommit:        v1.1.2-0-ga916309
      docker-init:
        Version:          0.19.0
        GitCommit:        de40ad01.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.

Check Docker Version

Check Docker Version

4、測(cè)試 Docker

讓我們繼續(xù),測(cè)試 Docker 是否運(yùn)行正常:

運(yùn)行:

復(fù)制
    $ sudo docker run hello-world1.

上述命令會(huì)下載一個(gè) Docker 測(cè)試鏡像,并在容器內(nèi)執(zhí)行一個(gè) “hello_world” 樣例程序。

如果你看到類(lèi)似下方的輸出,那么祝賀你!Docker 正常運(yùn)行在你的 Ubuntu 系統(tǒng)中了。

復(fù)制
    Unable to find image 'hello-world:latest' locally
    latest: Pulling from library/hello-world
    2db29710123e: Pull complete 
    Digest: sha256:13e367d31ae85359f42d637adf6da428f76d75dc9afeb3c21faea0d976f5c651
    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/1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.

Run Hello World Docker Container

Run Hello World Docker Container

很好!可以使用 Docker 了。

5、作為非 root 用戶(hù)運(yùn)行 Docker (選做)

默認(rèn)情況下,Docker 守護(hù)進(jìn)程綁定到 Unix 套接字而不是 TCP 端口。由于 Unix 套接字由 root 用戶(hù)擁有,Docker 守護(hù)程序?qū)H以 root 用戶(hù)身份運(yùn)行。因此,普通用戶(hù)無(wú)法執(zhí)行大多數(shù) Docker 命令。

如果你想要在 Linux 中作為非 root 用戶(hù)運(yùn)行 Docker ,參考下方鏈接:

我個(gè)人不這樣做也不推薦你這么做。如果你不會(huì)在互聯(lián)網(wǎng)上暴露你的系統(tǒng),那沒(méi)問(wèn)題。然而,不要在生產(chǎn)系統(tǒng)中以非 root 用戶(hù)身份運(yùn)行 Docker 。

在 Ubuntu 中安裝 Docker Compose

Docker Compose 是一個(gè)可用于定義和運(yùn)行多容器 Docker 應(yīng)用程序的工具。使用 Compose,你可以使用 Compose 文件來(lái)配置應(yīng)用程序的服務(wù)。然后,使用單個(gè)命令,你可以從配置中創(chuàng)建和啟動(dòng)所有服務(wù)。

下列任何方式都可以安裝 Docker Compose 。

方式 1、使用二進(jìn)制文件安裝 Docker Compose

從 這里 下載最新 Docker Compose 。

當(dāng)我在寫(xiě)這篇文章時(shí),最新版本是 2.6.1 。

運(yùn)行下列命令安裝最新穩(wěn)定的 Docker Compose 文件:

復(fù)制
    $ sudo curl -L "https://github.com/docker/compose/releases/download/v2.6.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose1.

如果有更新版本,只需要將上述命令中的 v2.6.1 替換為最新的版本號(hào)即可。請(qǐng)不要忘記數(shù)字前的 "v" 。

最后,使用下列命令賦予二進(jìn)制文件可執(zhí)行權(quán)限:

復(fù)制
    $ sudo chmod +x /usr/local/bin/docker-compose1.

運(yùn)行下列命令檢查安裝的 Docker Compose 版本:

復(fù)制
    $ docker-compose version
    Docker Compose version v2.6.11.2.

方式 2、使用 Pip 安裝 Docker Compose

或許,我們可以使用 Pip 安裝 Docker Compose 。Pip 是 Python 包管理器,用來(lái)安裝使用 Python 編寫(xiě)的應(yīng)用程序。

參考下列鏈接安裝 Pip 。

安裝 Pip 后,運(yùn)行以下命令安裝 Docker Compose。下列命令對(duì)于所有 Linux 發(fā)行版都是相同的!

復(fù)制
    $ pip install docker-compose1.

安裝 Docker Compose 后,使用下列命令檢查版本:

復(fù)制
    $ docker-compose --version1.

你將會(huì)看到類(lèi)似下方的輸出:

復(fù)制
    docker-compose version 2.6.1, build 8a1c60f61.

恭喜你!我們已經(jīng)成功安裝了 Docker 社區(qū)版和 Docker Compose 。

安裝了 Docker,然后呢?查看本系列的下一篇文章,了解 Docker 基礎(chǔ)知識(shí)。

要在基于 RPM 的系統(tǒng)(例如 RHEL、Fedora、CentOS、AlmaLinux、Rocky Linux 和 openSUSE)中安裝 Docker,請(qǐng)參考以下鏈接。

總結(jié)

在這篇教程中,我們討論了 Docker 是什么,如何在 Ubuntu 22.04 LTS Jammy Jellyfish 中安裝

Docker 。然后學(xué)習(xí)了如何通過(guò)運(yùn)行 hello-world Docker 鏡像測(cè)試 Docker

是否成功安裝。最后,我們通過(guò)使用兩種不同的方式安裝 Docker Compose 作為本教程的結(jié)尾。