Docker Engine (也称作 Docker CE) 是 Docker 官方的社区版包,它不包含在 Ubuntu 默认的存储库中。因此,你无法直接使用 apt install docker-ce 命令安装 docker-ce。你需要先添加 Docker 的官方 GPG 秘钥和存储库才能使用这个命令安装 docker-ce

安装 Docker Engine

你有两种方式安装 Docker Engine,一种是使用官方的简易安装脚本,另一种是手动配置 APT 源并使用 APT 安装。

使用简易脚本安装

Docker 官方为我们编写了一个脚本,可以快速为我们完成上面的步骤。

# 下载安装脚本
curl -fsSL https://get.docker.com -o install-docker.sh # 执行安装脚本
sudo sh install-docker.sh

可以在执行安装脚本时添加 --mirror Aliyun 选项以使用阿里镜像源加快安装速度

使用 APT 安装

  1. 如果你安装过非官方版本的 Docker,则需要先清理这些包:

    for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt remove $pkg; done
  2. 将 Docker 软件源添加到 APT 源列表:

    # 添加 Docker 软件源的 GPG 公钥:
    sudo apt install -y ca-certificates curl # 安装 curl 及 curl 用到的 CA 证书
    sudo install -m 0755 -d /etc/apt/keyrings # 确保公钥存储文件夹存在
    sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc # 下载公钥文件
    sudo chmod a+r /etc/apt/keyrings/docker.asc # 设置公钥文件权限 # 将 Docker 软件源添加到 APT 源列表
    echo \
    "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
    $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
    sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # 更新 APT 索引
    sudo apt update
  3. 安装 Docker Engine:

    sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

    至此,Docker Engine 就安装完成了。

参考:

卸载 Docker Engine

卸载 Docker Engine:

sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras

删除残留镜像、容器、卷,以及自定义配置文件:

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

不使用 sudo 运行 docker

目前为止,你需要使用 sudo 来运行 docker 命令,就像这样:

sudo docker run hello-world

原因是 Docker 守护程序绑定到 Unix 套接字,而不是 TCP 端口。默认情况下,拥有 Unix 套接字的是 root 用户,其他用户只能使用 sudo 访问它。Docker 守护程序始终以 root 用户身份运行。

如果你不想每次在命令前加上 sudo,可以使用一下两种方法:

将用户添加到 docker 组

如果不想在 docker 命令前加上 sudo,请创建一个名为 docker 的 Unix 组,并将用户添加到其中。当 Docker 守护程序启动时,它会创建一个 Unix 套接字,只有 docker 组的成员可以访问。

️ 注意:该组为用户授予 root 级别权限。而这可能会影响系统安全

如果你希望让 Docker 在非 root 模式下运行,请参考下节 rootless mode

  1. 创建 docker 用户组:

    sudo groupadd docker

    你的电脑上可能已经存在 docker 组,此时命令可能报错。你可以忽略这个错误。

  2. 将你的用户添加到 docker 组中:

    sudo usermod -aG docker $USER
  3. 注销并重新登录 Linux

  4. 测试配置是否成功

    docker run hello-world

    命令的输出应该是 Hello from Docker! 以及一大行字符串。

参考:Linux post-installation steps for Docker Engine | Docker Docs

Rootless Mode(不推荐)

️:Rootless Mode 由于缺少 root 权限,可能有些高级功能会受到限制。

目前已知的问题有:如果要运行的容器需要暴露 80 端口等特权端口,在没有 root 权限的情况下会失败。

安装

安装依赖:

sudo apt install -y uidmap

安装 rootless mode

dockerd-rootless-setuptool.sh install

如果提示 dockerd-rootless-setuptool.sh 不存在,则可能需要手动安装 docker-ce-rootless-extras 包:

sudo apt install -y docker-ce-rootless-extras

参考:Run the Docker daemon as a non-root user (Rootless mode) | Docker Docs

卸载

删除 Docker 守护程序的 systemd 服务:

dockerd-rootless-setuptool.sh uninstall

删除数据目录:

rootlesskit rm -rf ~/.local/share/docker

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

  1. 在Ubuntu上安装Docker Engine

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

  2. Ubuntu安装docker(摘自官网,自用)

    在 Ubuntu 上安装 Docker 引擎(按照标红顺序执行命令) 预计阅读时间:11分钟 适用于 Linux 的 Docker 桌面 Docker Desktop 可帮助您在 Mac 和 Wind ...

  3. Centos7安装Docker Engine

    一.先决条件 首选需要一个64位操作系统和3.10或者更版本的内核. 查看当前内核版本: $ uname -r -.el7.x86_64 二.yum安装Docker Engine 安装Docker E ...

  4. ubuntu安装docker以及基本用法

    ubuntu安装docker以及基本用法 一.安装 安装前先更新apt-get源到最新版本 apt-get update 使用ubuntu自带的docker安装包安装docker apt-get in ...

  5. Ubuntu安装docker笔记

    前言   根据参考文档简单记录Ubuntu系统安装docker的步骤 系统版本 panzi@ubuntu:~$ cat /etc/issue Ubuntu 16.04.5 LTS \n \l 移除旧版 ...

  6. 总结关于Ubuntu 安装 Docker 配置相关问题及解决方法

    总结关于Ubuntu 安装 Docker 配置相关问题及解决方法 Tomcat 示例 软件镜像(xx安装程序)----运行镜像----产生一个容器(正在运行的软件,运行的xx): 步骤: 1.搜索镜像 ...

  7. ubuntu 安装 docker 并配置镜像加速(使用 apt-get 进行安装)

    ubuntu 安装docker CentOS docker安装 https://blog.csdn.net/weixin_44953227/article/details/108597310 你需要这 ...

  8. Docker笔记--ubuntu安装docker

    Docker笔记--ubuntu安装docker 1.更换国内软件源,推荐中国科技大学的源,稳定速度快(可选) sudo cp /etc/apt/sources.list /etc/apt/sourc ...

  9. Ubuntu安装Docker步骤

    环境:Ubuntu Trusty 14.04 (LTS) 前提条件: Docker requires a 64-bit installation regardless of your Ubuntu v ...

  10. Ubuntu安装Docker 适合Ubuntu17.04版本

    Docker介绍 Docker是一个开源的容器引擎,它有助于更快地交付产品.Docker可将应用程序和基础设施层隔离,并且将基础设施当作程序一样进行管理.使用Docker,可以更快地打包,测试以及部署 ...

随机推荐

  1. Linux 特权 SUID/SGID 的详解

    导航 0 前言 1 权限匹配流程 2 五种身份变化 3 有效用户/组 4 特权对 Shell 脚本无效 5 Sudo 与 SUID/SGID 的优先级 6 SUID.SGID.Sticky 各自的功能 ...

  2. 结合RNN与Transformer双重优点,深度解析大语言模型RWKV

    本文分享自华为云社区<[云驻共创]昇思MindSpore技术公开课 RWKV 模型架构深度解析>,作者:Freedom123. 一.前言 Transformer模型作为一种革命性的神经网络 ...

  3. CF1137C 题解

    考虑把每个点进行拆成 \(d\) 个点表示星期几走到这个点,那么原图上的边 \((u,v)\) 就被拆成\((pos_{u,i},pos_{v,i+1})\) 表示星期的变化. 然后考虑进行缩点,在一 ...

  4. 轻松掌握useAsyncData获取异步数据

    title: 轻松掌握useAsyncData获取异步数据 date: 2024/7/12 updated: 2024/7/12 author: cmdragon excerpt: 摘要:本文详细介绍 ...

  5. 今天我们来聊Java IO模型,BIO、NIO、AIO三种常见IO模型

    一.写在开头 很久没更新喽,最近build哥一直在忙着工作,忙着写小说,都忘记学习自己的本职了,哈哈,不过现在正式回归! 我们继续学习Java的IO相关内容,之前我们了解到,所谓的IO(Input/O ...

  6. 解决方案 | vba批量冻结首行,所有sheet一次性设置

    Sub FreezeTopRowAllSheets() Dim ws As Worksheet ' 遍历所有工作表 For Each ws In ThisWorkbook.Worksheets ' 激 ...

  7. 使用PHP实现字符串的上标和下标,比如:M²和Log₂FC

    要在PHP中实现字符串的上标和下标效果,并直接在命令行或网页中正确显示,你可以分别使用Unicode转义序列或HTML实体来表示上标(UPER)和下标(SUB)字符.对于打印到网页的情况,可以使用HT ...

  8. oeasy教您玩转vim - 88 - # 自动命令autocmd

    ​ 自动命令 autocommand 回忆 上次我们研究的是外部命令grep 可以在vim中使用grep 搜索的结果进入了列表 可以打开.遍历.跳转.关闭这个列表 也可以给列表中的匹配行或者每个文件执 ...

  9. IPFS 解决国内 docker mirror 封锁

    IPFS 解决国内 docker mirror 封锁 内容仅用于研究,帮助开发者学习技术知识,以建设祖国 IPFS 技术是当前 Web3 的主要基建设施,提供去中心化存储,以及 libp2p 的去中心 ...

  10. RPA处理京东滑块拼图验证码

    在进行京东商家后台企业账号的RPA自动化操作过程中,登录环节是必不可少的步骤.然而,这一过程中有时会遇到一种特殊的验证机制--滑块拼图验证码,它的突然出现如同一道屏障,阻碍了自动化的顺利进行.因为只有 ...