在Ubuntu上安装Docker

201 阅读1分钟

在Ubuntu上安装Docker引擎

要开始使用Ubuntu上的Docker引擎,请确保您满足先决条件,那么安装Docker.

先决条件

操作系统要求

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

  • Ubuntu动能版22.10
  • 海哲明乌班图22.04 (LTS)
  • Ubuntu Focal 20.04 (LTS)
  • Ubuntu Bionic 18.04 (LTS)

Docker引擎兼容x86_64(或者amd64), armhfarm64,以及s390x建筑。

卸载旧版本

旧版本的Docker被称为dockerdocker.io,或者docker-engine.在尝试安装新版本之前,请卸载任何此类旧版本:

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

如果可以的话apt-get报告这些软件包均未安装。

存储在中的映像、容器、卷和网络/var/lib/docker/卸载Docker时不会自动删除。如果您希望从全新安装开始,并且希望清除任何现有数据,请参考卸载Docker引擎部分。

安装方法

根据您的需要,您可以用不同的方式安装Docker Engine:

使用存储库安装

在新主机上第一次安装Docker引擎之前,需要设置Docker存储库。之后,您可以从存储库中安装和更新Docker。

设置存储库

  1. 更新apt包索引和安装包以允许apt要在HTTPS上使用存储库:

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

    $ 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. 使用以下命令设置存储库:

    $ 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引擎

  1. 更新apt包索引:

    $ sudo apt-get update
    

    运行时收到GPG错误apt-get update?

    您的默认设置umask可能配置不正确,导致无法检测存储库公钥文件。在更新包索引之前,尝试授予Docker公钥文件的读取权限:

    $ sudo chmod a+r /etc/apt/keyrings/docker.gpg
    $ sudo apt-get update
    
  2. 安装Docker引擎、containerd和Docker Compose。

    要安装最新版本,请运行:

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

  3. 通过运行以下命令验证Docker引擎安装是否成功hello-world图片:

    $ sudo docker run hello-world
    

    该命令下载一个测试映像,并在容器中运行它。当容器运行时,它打印一条确认消息并退出。

您现在已经成功安装并启动了Docker引擎。这docker用户组存在,但不包含用户,这就是为什么您需要使用sudo运行Docker命令。继续Linux安装后配置允许非特权用户运行Docker命令和其他可选的配置步骤。

升级Docker引擎

要升级Docker引擎,请遵循安装说明,选择要安装的新版本。

从软件包安装

如果你不能使用Docker的apt仓库来安装Docker引擎,您可以下载deb文件并手动安装。你需要下载一个新的文件,每次你想升级Docker引擎。

  1. 去…https://download.docker.com/linux/ubuntu/dists/.

  2. 在列表中选择您的Ubuntu版本。

  3. 去…pool/stable/并选择适用的架构(amd64armhfarm64,或者s390x).

  4. 下载以下内容debDocker引擎、CLI、containerd和Docker的文件构成软件包:

    • containerd.io_<version>_<arch>.deb
    • docker-ce_<version>_<arch>.deb
    • docker-ce-cli_<version>_<arch>.deb
    • docker-compose-plugin_<version>_<arch>.deb
  5. 安装.deb包裹。将以下示例中的路径更新到下载Docker包的位置。

    $ sudo dpkg -i ./containerd.io_<version>_<arch>.deb \
      ./docker-ce_<version>_<arch>.deb \
      ./docker-ce-cli_<version>_<arch>.deb \
      ./docker-compose-plugin_<version>_<arch>.deb
    

    Docker守护进程会自动启动。

  6. 通过运行以下命令验证Docker引擎安装是否成功hello-world图片:

    $ sudo docker run hello-world
    

    该命令下载一个测试映像,并在容器中运行它。当容器运行时,它打印一条确认消息并退出。

您现在已经成功安装并启动了Docker引擎。这docker用户组存在,但不包含用户,这就是为什么您需要使用sudo运行Docker命令。继续Linux安装后配置允许非特权用户运行Docker命令和其他可选的配置步骤。

升级Docker引擎

要升级Docker引擎,请下载较新的软件包文件并重复安装程序,指向新文件。

使用方便的脚本安装

Docker提供了一个方便的脚本get.docker.com/以非交互方式将Docker安装到开发环境中。不建议在生产环境中使用这个方便的脚本,但是它对于创建适合您需求的配置脚本很有用。另请参考使用存储库安装了解使用软件包存储库进行安装的步骤。该脚本的源代码是开源的,可以在docker-installGitHub上的知识库.

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

  • 剧本要求root或者sudo运行权限。
  • 该脚本试图检测您的Linux发行版和版本,并为您配置软件包管理系统。
  • 该脚本不允许您自定义大多数安装参数。
  • 该脚本安装依赖项和建议,而不要求确认。这可能会安装大量软件包,具体取决于您主机的当前配置。
  • 默认情况下,该脚本安装Docker、containerd和runc的最新稳定版本。当使用这个脚本配置一台机器时,这可能会导致Docker的主要版本意外升级。在部署到您的生产系统之前,请始终在测试环境中测试升级。
  • 该脚本不是为升级现有Docker安装而设计的。使用脚本更新现有安装时,依赖项可能不会更新到预期版本,从而导致版本过时。

提示:运行前预览脚本步骤

您可以使用DRY_RUN=1选项来了解调用时脚本将运行的步骤:

$ curl -fsSL https://get.docker.com -o get-docker.sh
$ DRY_RUN=1 sudo 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,您需要使用适当的手动启动它systemctl或者service命令。如消息所示,默认情况下,非root用户不能运行Docker命令。

以非特权用户身份使用Docker,还是以无根模式安装?

安装脚本要求root或者sudo安装和使用Docker的权限。如果您想授予非根用户对Docker的访问权限,请参考Linux的安装后步骤.你也可以不安装Dockerroot特权,或者配置为在无根模式下运行。有关在无根模式下运行Docker的说明,请参阅以非根用户身份运行Docker守护程序(无根模式).

安装预发布版本

Docker还提供了一个方便的脚本test.docker.com/在Linux上安装Docker的预发行版。此脚本等于上的脚本get.docker.com,但是将您的包管理器配置为使用Docker包存储库的测试通道。测试渠道包括Docker的稳定版本和预发布版本(beta版本,候选版本)。使用这个脚本来获得对新版本的早期访问,并在它们作为稳定版本发布之前在测试环境中对它们进行评估。

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

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

使用便利脚本后升级Docker

如果您使用方便的脚本安装了Docker,您应该直接使用您的软件包管理器升级Docker。重新运行便利脚本没有任何好处。如果它试图重新安装主机上已经存在的存储库,重新运行它可能会导致问题。

卸载Docker引擎

  1. 卸载Docker引擎、CLI、containerd和Docker Compose软件包:

    $ sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-compose-plugin
    
  2. 主机上的映像、容器、卷或自定义配置文件不会自动移除。要删除所有图像、容器和卷:

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

您必须手动删除任何已编辑的配置文件。