Ubuntu上安装Docker

Ubuntu安装Docker

系统要求

64位的,下列之一的Ubuntu操作系统:

  • Ubuntu Jammy 22.04 (LTS)
  • Ubuntu Impish 21.10
  • Ubuntu Focal 20.04 (LTS)
  • Ubuntu Bionic 18.04 (LTS)

卸载旧版本Docker

如果系统中安装有旧版本docker,需要先卸载:

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

路径/var/lib/docker下,包括旧版本docker的镜像、容器、数据卷和网络配置,若不需要这些数据,则执行如下操作:

#卸载Docker Engine, CLI, Containerd, and Docker Compose packages
sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-compose-plugin

#删除镜像、容器、数据卷和网络等
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

安装docker的方法

根据需要,可以采取不同的方式安装Docker

  • 多数用户采用从Docker’s repositories安装,方便安装和更新。这也是推荐安装的方法
  • 一些用户下载DEB安装包,手动安装和更新。这种方法适用于系统无法联网的情况。
  • 在测试和开发环境,一些用户自动化安装脚本安装。

## 通过repository安装

当你初次在主机上安装docker时,需要先设置Docker repository。之后,就可以从Docker repository安装和更新Docker

设置repository

  1. 更新apt包索引并安装包,以允许apt通过HTTPS使用repository:

    sudo apt-get update
    
    sudo apt-get install \
        ca-certificates \
        curl \
        gnupg \
        lsb-release
    
  2. 添加Docker的官方GPG key

    sudo mkdir -p /etc/apt/keyrings
    
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    
  3. 使用下列命令设置repository

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

安装Docker Engine

  1. 更新apt包索引,安装最新版本的Docker Engine、containerd和Docker compose,或跳转到下一步安装指定的版本

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

    当运行apt-get update时,出现GPG错误?

    Receiving a GPG error when running apt-get update?

    默认umask可能未正确设置,导致无法检测到repository的公钥文件。运行以下命令,然后再次尝试更新您的存储库

    sudo chmod a+r/etc/apt/keyrings/docker.gpg

  2. 为安装指定版本,先列出可用版本,选择安装:

    a. 列出可用版本

    apt-cache madison docker-ce
    

    b. 使用来自第二列的版本字符串安装特定版本,如:

    5:20.10.16~3-0~ubuntu-jammy

    sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io docker-compose-plugin
    
  3. 使用hello-world镜像验证Docker Engine安装正确

    #启动docker
    sudo service docker start
    #此命令下载测试映像并在容器中运行。当容器运行时,它打印一条消息并退出。
    sudo docker run hello-world
    

Doker Engine完成安装,正在运行。docker组被创建,但没有添加用户,需要使用sudo运行docker命令。参见下列设置Post-installation steps for Linux | Docker Documentation,以允许非特权用户运行Docker命令和其他可选配置步骤。

Docker Engine更新

为更新Docker Engine,先运行sudo apt-get update,然后按照上面的步骤,选择所需新版本安装。

通过package安装

如果无法使用Docker的repository安装,可以下载.deb文件,手动安装。当你想要更新时,需要每次下载新的安装文件。

  1. 访问https://download.docker.com/linux/ubuntu/dists/,选择自己的Ubuntu版本,浏览pool/stable/,选择amd64, armhf, arm64, or s390x,然后下载所需版本的.deb文件。

  2. 安装Docker引擎,将下面的路径更改为下载Docker包的路径:

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

    Docker守护进程将自动启动。

  3. 使用hello-world镜像验证Docker Engine安装正确

    #此命令下载测试映像并在容器中运行。当容器运行时,它打印一条消息并退出。
    sudo docker run hello-world
    

    Doker Engine完成安装,正在运行。docker组被创建,但没有添加用户,需要使用sudo运行docker命令。参见下列设置,以允许非特权用户运行Docker命令和其他可选配置步骤。

Docker Engine更新

为更新Docker Engine,重新下载新的安装包,重复上面的安装步骤。

通过脚本安装

Docker在 get.docker.com提供了一个方便的脚本,可以快速、无交互的在开发环境安装。此脚本不推荐在生产环境使用,但可以作为一个示例来创建一个根据您的需要定制的供应脚本。另外,请参阅【通过repository安装】步骤,以了解使用repository安装的步骤。脚本源码是开源的,可以在 repository on GitHub的docker-install找到。

在本地运行之前,检查下载的脚本。安装之前,请熟悉便利脚本的潜在风险和限制:

  • 脚本需要root或sudo权限才能运行。
  • 该脚本试图检测您的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下载脚本,安装最新的Docker稳定版本:

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

Docker安装后,docker服务在基于Debian的发行版上自动启动。在基于RPM的发行版本上,如CentOS, Fedora, RHEL or SLES,需要手动使用systemctlservice命令启动。如消息所示,默认情况下,非root用户无法运行Docker命令。

作为非特权用户使用Docker,还是以无root模式安装?

安装脚本需要使用root权限或sudo进行安装和使用Docker。如果需要授权非root用户使用Docker,参见post-installation steps for Linux. Docker同样可以在没有root权限情况下安装,或者配置在无root模式下运行。在无root模式下运行Docker,参见 run the Docker daemon as a non-root user (rootless mode).

安装pre-releases版本

在test.docker.com上,同样提供安装pre-release版本的Docker在Linux上。这个脚本和get.docker.com的脚本相同,但是配置包管理器以启用来自我们的repository的“测试”通道,其中包括Docker的稳定版本和预发行版(测试版、候选发行版)。使用此脚本提前获取新版本,在正式发行前在测试环境下进行评估。

从“测试”通道安装最新版本的Docker在Linux上,运行:

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

使用脚本安装Docker后进行更新

如果使用脚本安装的Docker,需要使用包管理器直接更新Docker。重新运行安装脚本并无好处,并且如果试图重新添加已添加到主机的repositories,则可能会导致问题

你可能感兴趣的:(docker,ubuntu,linux)