Ubuntu 安装 Docker Engine
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 安装
如果你安装过非官方版本的 Docker,则需要先清理这些包:
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt remove $pkg; done
将 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
安装 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
创建 docker 用户组:
sudo groupadd docker
你的电脑上可能已经存在
docker组,此时命令可能报错。你可以忽略这个错误。将你的用户添加到 docker 组中:
sudo usermod -aG docker $USER
注销并重新登录 Linux
测试配置是否成功
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的更多相关文章
- 在Ubuntu上安装Docker Engine
在Ubuntu上安装Docker Engine 这篇文章是介绍如何在在Ubuntu上安装Docker Engine,就是Google翻译官方文档的版本,英语好的直接官方原文.原文 要在Ubuntu上开 ...
- Ubuntu安装docker(摘自官网,自用)
在 Ubuntu 上安装 Docker 引擎(按照标红顺序执行命令) 预计阅读时间:11分钟 适用于 Linux 的 Docker 桌面 Docker Desktop 可帮助您在 Mac 和 Wind ...
- Centos7安装Docker Engine
一.先决条件 首选需要一个64位操作系统和3.10或者更版本的内核. 查看当前内核版本: $ uname -r -.el7.x86_64 二.yum安装Docker Engine 安装Docker E ...
- ubuntu安装docker以及基本用法
ubuntu安装docker以及基本用法 一.安装 安装前先更新apt-get源到最新版本 apt-get update 使用ubuntu自带的docker安装包安装docker apt-get in ...
- Ubuntu安装docker笔记
前言 根据参考文档简单记录Ubuntu系统安装docker的步骤 系统版本 panzi@ubuntu:~$ cat /etc/issue Ubuntu 16.04.5 LTS \n \l 移除旧版 ...
- 总结关于Ubuntu 安装 Docker 配置相关问题及解决方法
总结关于Ubuntu 安装 Docker 配置相关问题及解决方法 Tomcat 示例 软件镜像(xx安装程序)----运行镜像----产生一个容器(正在运行的软件,运行的xx): 步骤: 1.搜索镜像 ...
- ubuntu 安装 docker 并配置镜像加速(使用 apt-get 进行安装)
ubuntu 安装docker CentOS docker安装 https://blog.csdn.net/weixin_44953227/article/details/108597310 你需要这 ...
- Docker笔记--ubuntu安装docker
Docker笔记--ubuntu安装docker 1.更换国内软件源,推荐中国科技大学的源,稳定速度快(可选) sudo cp /etc/apt/sources.list /etc/apt/sourc ...
- Ubuntu安装Docker步骤
环境:Ubuntu Trusty 14.04 (LTS) 前提条件: Docker requires a 64-bit installation regardless of your Ubuntu v ...
- Ubuntu安装Docker 适合Ubuntu17.04版本
Docker介绍 Docker是一个开源的容器引擎,它有助于更快地交付产品.Docker可将应用程序和基础设施层隔离,并且将基础设施当作程序一样进行管理.使用Docker,可以更快地打包,测试以及部署 ...
随机推荐
- C#数据结构与算法入门教程,值得收藏学习!
前言 最近看到DotNetGuide技术社区交流群有不少小伙伴提问:想要系统化的学习数据结构和算法,不知道该怎么入门,有无好的教程推荐的?,今天大姚给大家推荐2个开源.免费的C#数据结构与算法入门教程 ...
- TOPSIS模型原理以及代码实现
TOPSIS 法是一种常用的组内综合评价方法,能充分利用原始数据的信息,其结果能精确地反映各评价方案之间的差距.下面我们来介绍具体步骤与代码实现 目录 问题提出 第一步:数据输入 1.如何从excel ...
- yb课堂 基于浏览器和node.js的http客户端Axios 《三十四》
什么是Axios 基于promise用于浏览器和node.js的http客户端 支持浏览器和node.js 支持Promise API 支持拦截请求和响应 支持转换请求和响应数据 JSON数据的自动转 ...
- SpringBoot中使用Servlet3.0注解开发自定义的拦截器
使用Servlet3.0的注解进行配置步骤 启动类里面加@ServletComponentScan,进行扫描 新建一个Filter类,implements Filter,并实现对应的接口 @WebFi ...
- javaweb使用gson工具使浏览器返回json数据
1.什么是序列化和反序列化 (1)Java序列化是指把Java对象转换为字节序列的过程,而Java反序列化是指把字节序列恢复为Java对象的过程: (2)序列化:对象序列化的最主要的用处就是在传递和保 ...
- 全网最适合入门的面向对象编程教程:05 类和对象的Python实现-PyCharm代码标签(一个帮你提升coding效率的小技巧)
摘要: 本文介绍了PyCharm IDE中代码标签的定义.类型和使用方法. 往期推荐: 学嵌入式的你,还不会面向对象??! 全网最适合入门的面向对象编程教程:00 面向对象设计方法导论 全网最适合入门 ...
- 可视化—AntV G6实现节点连线及展开收缩分组
AntV 是蚂蚁金服全新一代数据可视化解决方案,主要包含数据驱动的高交互可视化图形语法G2,专注解决流程与关系分析的图表库 G6.适于对性能.体积.扩展性要求严苛的场景. demo使用数字模拟真实的节 ...
- 使用了条件三元运算符来判断 this.temp.id 是否存在且 mt_qty 是否已被赋值
mt_qty: (this.temp.id && this.temp.mt_qty) ? this.temp.mt_qty : event.wo_wip,在这个修正后的代码中,使用了条 ...
- oeasy 教您玩转linux 之 010209 装酷利器 hollywood
我们来回顾一下 上一部分我们都讲了什么? 屏幕故障风格的软件包bb 可以设置音频 这次装一个酷 下个hollywood软件包 apt show hollywood apt search hollywo ...
- C# 算术表达式求值(后缀法),看这一篇就够了
一.种类介绍 算术表达式有三种:前缀表达式.中缀表达式和后缀表达式.一般用的是中缀,比如1+1,前后缀就是把操作符移到前面和后面,下面简单介绍一下这三种表达式. 1.前缀表示法 前缀表示法又叫波兰表示 ...