在Ubuntu上安装Docker Engine

这篇文章是介绍如何在在Ubuntu上安装Docker Engine,就是Google翻译官方文档的版本,英语好的直接官方原文。原文

要在Ubuntu上开始使用Docker Engine,请确保您满足先决条件,然后 安装Docker

前提条件

操作系统要求

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

  • Ubuntu Focal 20.04(LTS)
  • Ubuntu Eoan 19.10
  • Ubuntu Bionic 18.04(LTS)
  • Ubuntu Xenial 16.04(LTS)

Docker Engine支持x86_64(或amd64armhfarm64s390x (IBM Z),和ppc64le(IBM的Power)架构。

卸载旧版本

如果你有安装旧版本的Docker,比如docker, docker.io, or docker-engine,你需要先卸载这些软件:

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

如果apt-get报告未安装这些软件包,则可以。

Docker Engine overlay2默认使用存储驱动程序。如果需要使用 aufs,则需要手动配置。请参阅使用AUFS存储驱动程序

安装方法

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

  • 大多数用户会 设置Docker的存储库并从中进行安装,以简化安装和升级任务。这是推荐的方法。
  • 一些用户下载并手动安装 DEB软件包, 并完全手动管理升级。这在诸如在无法访问互联网的空白系统上安装Docker的情况下非常有用。
  • 在测试和开发环境中,一些用户选择使用自动 便利脚本来安装Docker。

使用存储库安装

在新主机上首次安装Docker Engine之前,需要设置Docker存储库。之后,您可以从存储库安装和更新Docker。

设置存储库

  1. 更新apt软件包索引并安装软件包以允许apt通过HTTPS使用存储库:

    $ sudo apt-get update
    
    $ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    refer-anchor-3 gnupg-agent \
    software-properties-common
  2. 添加Docker的官方GPG密钥:

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

    9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88通过搜索指纹的后8个字符,验证您现在是否拥有带有指纹的密钥 。

    $ sudo apt-key fingerprint 0EBFCD88
    
    pub   rsa4096 2017-02-22 [SCEA]
    9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
    uid [ unknown] Docker Release (CE deb) <docker@docker.com>
    sub rsa4096 2017-02-22 [S]
  3. 使用以下命令来设置稳定的存储库。要添加 每晚测试存储库,请在以下命令中的单词后面添加nightlytest(或同时添加)stable了解每晚测试频道

    注意:下面的lsb_release -cs子命令返回Ubuntu发行版的名称,例如xenial。有时,在Linux Mint等发行版中,您可能需要更改$(lsb_release -cs) 为父Ubuntu发行版。例如,如果您使用 Linux Mint Tessa,则可以使用bionic。Docker对未经测试和不受支持的Ubuntu发行版不提供任何保证。

    $ sudo add-apt-repository \
    "deb [arch=amd64] {{ download-url-base }} \
    $(lsb_release -cs) \
    stable"
    $ sudo add-apt-repository \
    "deb [arch=armhf] {{ download-url-base }} \
    $(lsb_release -cs) \
    stable"
    $ sudo add-apt-repository \
    "deb [arch=arm64] {{ download-url-base }} \
    $(lsb_release -cs) \
    stable"
    $ sudo add-apt-repository \
    "deb [arch=ppc64el] {{ download-url-base }} \
    $(lsb_release -cs) \
    stable"
    $ sudo add-apt-repository \
    "deb [arch=s390x] {{ download-url-base }} \
    $(lsb_release -cs) \
    stable"

安装DOCKER引擎

  1. 更新apt程序包索引,并安装最新版本的Docker Engine和容器,或转到下一步以安装特定版本:

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

    Got multiple Docker repositories?

    如果启用了多个Docker存储库,则在未在apt-get installor apt-get update命令中指定版本的情况下进行安装或更新将始终安装可能的最高版本,这可能不适合您的稳定性需求。

  2. 要安装特定版本的Docker Engine,请在存储库中列出可用版本,然后选择并安装:

    a. 列出您的仓库中可用的版本:

    $ 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
    ...

    b. 使用第二列中的版本字符串安装特定版本,例如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
    
    Unable to find image 'hello-world:latest' locally
    latest: Pulling from library/hello-world
    0e03bdcc26d7: Pull complete
    Digest: sha256:6a65f928fb91fcfbc963f7aa6d57c8eeb426ad9a20c7ee045538ef34847f44f1
    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/

    此命令下载测试图像并在容器中运行。容器运行时,它会打印参考消息并退出。

    Docker Engine已安装并正在运行。该docker组已创建,但未添加任何用户。您需要使用sudo来运行Docker命令。继续进行Linux后安装,以允许非特权用户运行Docker命令以及其他可选配置步骤。

    升级DOCKER引擎

    要升级Docker Engine,请先运行sudo apt-get update,然后按照 安装说明进行操作,选择要安装的新版本。

从软件包安装

如果您不能使用Docker的存储库来安装Docker Engine,则可以下载.deb要发布的 文件并手动安装。每次升级Docker时,都需要下载一个新文件。

  1. https://download.docker.com/linux/ubuntu/dists/选择你的Ubuntu版本,然后浏览pool/stable/,选择amd64armhfarm64ppc64el,或s390x,并下载.deb文件要安装多克尔引擎版本。

    注意:要安装夜间测试(预发布)软件包,stable请将上述URL中的单词更改为nightlytest了解每晚测试频道

  2. 安装Docker Engine,将下面的路径更改为您下载Docker软件包的路径。

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

    Docker守护程序会自动启动。

  3. 通过运行hello-world 映像来验证是否正确安装了Docker Engine 。

    $ sudo docker run hello-world

    此命令下载测试图像并在容器中运行。容器运行时,它会打印参考消息并退出。

Docker Engine已安装并正在运行。该docker组已创建,但未添加任何用户。您需要使用sudo来运行Docker命令。继续执行Linux的安装后步骤,以允许非特权用户运行Docker命令以及其他可选配置步骤。

升级DOCKER引擎

要升级Docker Engine,请下载更新的软件包文件,然后重复 安装过程,指向新文件。

使用便捷脚本

Docker在get.docker.comtest.docker.com上提供了方便脚本,用于将Docker Engine-Community的边缘版本和测试版本快速且非交互地安装到开发环境中。脚本的源代码在 docker-install存储库中不建议在生产环境中使用这些脚本,在使用它们之前,您应该了解潜在的风险:

  • 脚本需要运行root或具有sudo特权。因此,在运行脚本之前,应仔细检查和审核脚本。
  • 这些脚本会尝试检测Linux发行版和版本,并为您配置软件包管理系统。此外,脚本不允许您自定义任何安装参数。从Docker的角度或您自己组织的准则和标准的角度来看,这可能导致不支持的配置。
  • 这些脚本将安装软件包管理器的所有依赖项和建议,而无需进行确认。这可能会安装大量软件包,具体取决于主机的当前配置。
  • 该脚本未提供用于指定要安装哪个版本的Docker的选项,而是安装了在“ edge”通道中发布的最新版本。
  • 如果已使用其他机制将Docker安装在主机上,请不要使用便捷脚本。

本示例使用get.docker.com上的脚本在Linux上安装最新版本的Docker Engine-Community。要安装最新的测试版本,请改用test.docker.com。在下面的每个命令,取代每次出现gettest

警告

在本地运行之前,请务必检查从Internet下载的脚本。

$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh <output truncated>

如果要使用Docker作为非root用户,则现在应考虑使用类似以下方式将用户添加到“ docker”组:

  sudo usermod -aG docker your-user

请记住注销并重新登录才能生效!

警告

将用户添加到“泊坞窗”组后,他们可以运行容器,该容器可用于获取Docker主机上的根特权。 有关更多信息,请参考 Docker Daemon Attack Surface

Docker Engine-社区已安装。它会自动在DEB基于发布的版本上启动。在 RPM基于发行版的系统上,您需要使用相应的systemctlservice命令手动启动它 。如消息所示,默认情况下,非root用户无法运行Docker命令。

注意事项

要安装没有root特权的Docker,请参阅 以非root用户身份运行Docker守护程序(无根模式)

无根模式目前可作为实验功能。

使用便捷脚本后升级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

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

在Ubuntu上安装Docker Engine的更多相关文章

  1. 在Ubuntu上安装Docker

    原文链接:https://docs.docker.com/engine/installation/linux/ubuntu/   这里记录的是社区版安装方式,由于平时只做开发使用所以不需要安装企业版, ...

  2. ubuntu上安装docker

    author : headsen chen date : 2019-03-06  16:36:12 apt-get remove docker docker-engine docker-ce dock ...

  3. 在Ubuntu上安装docker常见问题

    安装完docker之后,发现docker是装好了,但是运行docker就会报“Segmentation Fault or Critical Error encountered. Dumping cor ...

  4. ubuntu上安装及使用docker

    关于Docker: Docker 是一个开源项目,为开发者和系统管理员提供了一个开放的平台,在任何地方通过打包和运行应用程序作为一个轻量级的容器.Docker 在软件容器内自动部署应用程序.Docke ...

  5. Install Docker Engine on CentOS 在CentOS 7 上安装Docker

    Install Docker Engine on CentOS OS Requirements 系统要求 To install Docker Engine,you need a maintained ...

  6. Docker之Ubuntu上使用Docker的简易教程

    Ubuntu上使用Docker的简易教程 原始文档:https://www.yuque.com/lart/linux/fp6cla 说在开头 在天池的比赛中涉及到了docker的使用.经过多番探究,大 ...

  7. 【转载】Ubuntu 系列安装 Docker

    系统要求 Docker 支持以下版本的Ubuntu操作系统: Ubuntu Xenial 16.04 (LTS) Ubuntu Wily 15.10 Ubuntu Trusty 14.04 (LTS) ...

  8. 使用PPA在Ubuntu上安装php5.4~5.6,7

    使用PPA在Ubuntu上安装php5.4~5.6,7 sudo apt-get install software-properties-common sudo add-apt-repository ...

  9. Docker最全教程之Ubuntu下安装Docker(十四)

    前言 Ubuntu是一个以桌面应用为主的开源GNU/Linux操作系统,应用很广.本篇主要讲述Ubuntu下使用SSH远程登录并安装Docker,并且提供了Docker安装的两种方式,希望对大家有所帮 ...

随机推荐

  1. windows右键菜单自动打包发布nuget,没有CI/CD一样方便!

    构建现代的 .Net 应用离不开 Nuget 的支持,而快速打包 Nuget 成了提高生产率的有效方法.没有CI/CD?来试试使用windows右键菜单吧 先看右键效果图 有时候我们可能没有CI/CD ...

  2. 【UE4 设计模式】简单工厂模式 Simple Factory Pattern

    概述 描述 又称为静态工厂方法 一般使用静态方法,根据参数的不同创建不同类的实例 套路 创建抽象产品类 : 创建具体产品类,继承抽象产品类: 创建工厂类,通过静态方法根据传入不同参数从而创建不同具体产 ...

  3. [源码解析] Pytorch 如何实现后向传播 (1)---- 调用引擎

    [源码解析] Pytorch 如何实现后向传播 (1)---- 调用引擎 目录 [源码解析] Pytorch 如何实现后向传播 (1)---- 调用引擎 0x00 摘要 0x01 前文回顾 1.1 训 ...

  4. hystrix的dashboard和turbine监控

    当我们的应用程序使用了hystrix后,每个具体的hystrixCommand命令执行后都会产生一堆的监控数据,比如:成功数,失败数,超时数以及与之关联的线程池信息等.既然有了这些监控数据数据,那么我 ...

  5. SpringCloud 2020.0.4 系列之服务降级的其他用法与熔断

    1. 概述 老话说的好:控制好自己的情绪,才能控制好自己的人生.冲动是魔鬼,冷静才最重要. 言归正传,之前聊了在 Feign 调用时,如何给整个 Feign接口类 增加降级策略. 今天我们来聊一下 H ...

  6. GPIO原理与配置(跑马灯,蜂鸣器,按键)

    一.STM32 GPIO固件库函数配置方法 1. 根据需要在项目中删掉一些不用的固件库文件,保留有用的固件库文件 2. 在stm32f10x_conf.h中注释掉这些不用的头文件 3. STM32的I ...

  7. SpringCloud微服务实战——搭建企业级开发框架(十三):OpenFeign+Ribbon实现高可用重试机制

      Spring Cloud OpenFeign 默认是使用Ribbon实现负载均衡和重试机制的,虽然Feign有自己的重试机制,但该功能在Spring Cloud OpenFeign基本用不上,除非 ...

  8. 从ACID到CAP及BASE

    从ACID到CAP及BASE ACID 说到事务,肯定想到事务的ACID特性,即原子性(Atomicity).一致性(Consistency).隔离性(Isolation).持久性(Durabilit ...

  9. zabbix部署文档

    环境:zabbix server centos 7 1611最小化安装 172.16.103.2 zabbix client Centos 7 1611 最小化安装 172.16.103.3 1,配置 ...

  10. 【微服务理论】API + BFF

    对于微服务,常见的架构模型就是API网关+服务. API网关实现鉴权.负载均衡.中间件等公共入口逻辑. 服务实现具体的业务功能. 那么,API网关设计中又有什么坑呢? 1.0版本 直接将服务穿透到外网 ...