在 Ubuntu 上安装 Docker 的完整指南(使用国内镜像源)

在 Ubuntu 上安装 Docker 的完整指南(使用国内镜像源)

概述

Docker 是一个开源的应用容器引擎,允许开发者将应用及其依赖打包到一个可移植的容器中,从而实现快速部署和跨平台运行。本指南将详细介绍在 Ubuntu 系统上安装 Docker 的完整步骤,特别使用了清华大学镜像源以加速国内用户的下载过程。

准备工作

在开始安装前,请确保:

  • 使用的是 Ubuntu 系统(本教程适用于 Ubuntu 16.04 及以上版本)
  • 拥有 sudo 权限或 root 用户权限
  • 能够访问互联网

完整安装步骤

1. 卸载旧版本(如有)

为避免版本冲突,建议先卸载系统中可能存在的旧版本 Docker:

sudoapt-get remove docker docker-engine docker.io containerd runc 

注意:如果这是首次安装 Docker,系统中可能没有这些旧版本,但执行此命令可以确保环境的清洁。

2. 设置 Docker 仓库

2.1 更新系统包索引
sudoapt-get update 
2.2 安装必要的依赖包
sudoapt-getinstall ca-certificates curl
2.3 创建密钥目录并设置权限
sudoinstall-m 0755 -d /etc/apt/keyrings 
2.4 下载 Docker 官方 GPG 密钥(使用国内镜像)
sudocurl-fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc 
2.5 设置密钥文件权限
sudochmod a+r /etc/apt/keyrings/docker.asc 
2.6 添加 Docker 仓库源(使用清华镜像)
echo"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu $(. /etc/os-release &&echo\"$VERSION_CODENAME\") stable"|sudotee /etc/apt/sources.list.d/docker.list > /dev/null 

重要说明:此命令自动检测系统架构和 Ubuntu 版本代号,确保添加正确的仓库地址。

3. 安装 Docker 引擎

3.1 再次更新包索引
sudoapt-get update 
3.2 安装 Docker 及相关组件
sudoapt-getinstall docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin 

安装的组件说明:

  • docker-ce: Docker 社区版
  • docker-ce-cli: Docker 命令行工具
  • containerd.io: 容器运行时
  • docker-buildx-plugin: 扩展构建功能
  • docker-compose-plugin: Docker Compose 插件(用于多容器应用)

4. 启动和启用 Docker 服务

4.1 启动 Docker 服务
sudo systemctl start docker
4.2 设置 Docker 开机自启
sudo systemctl enabledocker

验证安装

安装完成后,可以通过以下命令验证 Docker 是否正确安装:

# 查看 Docker 版本信息sudodocker version # 运行测试容器sudodocker run hello-world 

如果看到 “Hello from Docker!” 的消息,说明 Docker 已成功安装并正常运行。

配置非 root 用户使用 Docker(可选)

默认情况下,Docker 需要 sudo 权限。如果您希望普通用户也能运行 Docker 命令,可以将用户添加到 docker 组:

sudousermod-aGdocker$USER

注意:执行此命令后,需要注销并重新登录才能生效。

常见问题解决

1. 如果遇到 GPG 密钥错误

可以尝试重新下载密钥:

sudorm /etc/apt/keyrings/docker.asc sudocurl-fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudochmod a+r /etc/apt/keyrings/docker.asc sudoapt-get update 

2. 如果仓库地址无法访问

可以尝试其他国内镜像源,如阿里云:

# 替换清华源为阿里云源sudosed-i's|https://mirrors.tuna.tsinghua.edu.cn/docker-ce|https://mirrors.aliyun.com/docker-ce|g' /etc/apt/sources.list.d/docker.list sudoapt-get update 

3. 安装特定版本的 Docker

如果需要安装特定版本,可以先查看可用版本:

apt-cache madison docker-ce 

然后安装指定版本:

sudoapt-getinstall docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io 

配置 Docker 镜像加速(推荐)

为进一步加速 Docker 镜像的拉取,可以配置国内镜像加速器:

  1. 创建或修改 Docker 配置文件:
sudomkdir-p /etc/docker sudotee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"] } EOF
  1. 重启 Docker 服务使配置生效:
sudo systemctl restart docker

总结

通过以上步骤,已经成功在 Ubuntu 系统上安装了 Docker 社区版。使用清华大学镜像源可以显著加快下载速度,特别适合国内用户。安装完成后,可以开始使用 Docker 来创建、部署和运行容器化应用程序。

Docker 的强大功能将在开发、测试和部署工作中发挥重要作用,帮助实现环境一致性和快速部署。现在,可以尝试拉取其他镜像或创建自己的 Dockerfile 来构建自定义镜像了。

提示:建议定期更新 Docker 以获得最新功能和安全补丁:

sudoapt-get update sudoapt-get upgrade 
在这里插入图片描述


1.卸载旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc

2.设置仓库
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo “deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu KaTeX parse error: Expected 'EOF', got '&' at position 20: …etc/os-release &̲& echo \"VERSION_CODENAME”) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

  1. 安装Docker
    sudo apt-get update
    sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  2. 启动
    sudo systemctl start docker
    sudo systemctl enable docker

Read more

Java智能客服系统实战:基于Spring Boot与NLP的高效实现方案

最近在做一个智能客服系统的项目,之前也调研过不少方案,发现传统的客服系统确实有不少痛点。今天就来分享一下我们团队基于 Spring Boot 和 NLP 技术,从零搭建一套高效智能客服系统的实战经验,希望能给有类似需求的同学一些参考。 1. 为什么需要智能客服?传统方案的痛点 在项目初期,我们维护的是一个基于规则引擎的客服系统。它的工作原理很简单:预先设定好一堆“关键词-回复”的匹配规则。用户提问时,系统就去遍历这些规则,找到匹配度最高的那条,然后给出预设的回复。 这套系统初期跑起来还行,但随着业务发展,问题越来越明显: 1. 规则爆炸,维护噩梦:每增加一个业务场景,就要手动添加一堆规则。比如“怎么退货”、“我要退款”、“退货流程是什么”,本质上是一个意图,却需要写三条甚至更多规则。规则库越来越臃肿,维护成本指数级上升。 2. 缺乏语义理解,死板僵硬:规则引擎只能做字面匹配。用户说“这个玩意我不想要了,能退吗?”,如果规则里只写了“退货”,很可能就匹配不上,

By Ne0inhk

JavaScript 操作 DOM 元素:添加、删除、替换、插入的完整方法指南

JavaScript 操作 DOM 元素:添加、删除、替换、插入的完整方法指南 一、开篇:DOM 元素操作 —— 前端页面交互的核心基石 在前端开发中,DOM(文档对象模型)是连接 JavaScript 与页面结构的桥梁,而元素的添加、删除、替换、插入是 DOM 操作中最基础也最常用的场景。无论是构建动态列表、实现组件渲染,还是处理用户交互后的页面更新,都离不开这些核心方法。 很多初学者在面对appendChild、insertBefore、removeChild等方法时,容易混淆其用法和适用场景,甚至出现 “元素插入失败”“删除报错” 等问题。本文将系统梳理 JavaScript 中 DOM 元素操作的四大类方法(添加、删除、替换、插入),结合实战示例、使用差异和注意事项,帮你彻底掌握 DOM

By Ne0inhk
别再乱用 ArrayList 了!这 4 个隐藏坑,90% 的 Java 开发者都踩过

别再乱用 ArrayList 了!这 4 个隐藏坑,90% 的 Java 开发者都踩过

🎁个人主页:User_芊芊君子 🎉欢迎大家点赞👍评论📝收藏⭐文章 🔍系列专栏:AI 文章目录: * 【前言】 * 坑 1:遍历删除元素,触发 ConcurrentModificationException * 坑的表现 * 踩坑场景 * 底层原因(通俗解释) * 错误/正确代码对比 * 错误代码 * 正确代码(3 种方案) * 坑 2:初始容量设置不当,导致频繁扩容,性能损耗 * 坑的表现 * 踩坑场景 * 底层原因(通俗解释) * 错误/正确代码对比 * 错误代码 * 正确代码 * 扩展建议 * 坑 3:空指针/索引越界,忽略索引范围或元素为空 * 坑的表现 * 踩坑场景 * 底层原因(通俗解释) * 错误/

By Ne0inhk