当前位置: 首页 > news >正文

在 Ubuntu Server 22.04 上安装 Docker 的详细步骤

在 Ubuntu Server 22.04 上安装 Docker 的详细步骤

本文档详细记录了在 Ubuntu Server 22.04 上安装 Docker 的完整过程,包括解决过程中遇到的问题。希望能对读者有所帮助。

安装过程,重点需要看官方文档。https://docs.docker.com/engine/install/ubuntu/

目录

  1. 卸载冲突的软件包
  2. 更新系统软件包
  3. 安装依赖包
  4. 添加 Docker 中科大 GPG 密钥
  5. 添加 Docker 中科大镜像稳定版软件源
  6. 再次更新软件包
  7. 安装最新版本的 Docker
  8. 配置 Docker 使用镜像加速器(hub)
  9. 重新启动 Docker 服务
  10. 验证 Docker 安装
  11. 实时查看 Docker 服务日志
  12. 附加资源
  13. 总结

步骤 1:卸载冲突的软件包

在安装 Docker Engine 之前,您需要卸载所有有冲突的软件包。发行版维护者在 APT 中提供了 Docker 软件包的非官方发行版。您必须先卸载这些软件包,然后才能安装 Docker Engine 的正式版本。

要卸载的非官方软件包包括:

  • docker.io
  • docker-compose
  • docker-compose-v2
  • docker-doc
  • podman-docker

此外,Docker Engine 依赖于 containerdrunc。Docker Engine 将这些依赖项捆绑为一个包:containerd.io。如果您之前安装了 containerdrunc,请卸载它们以避免与 Docker Engine 捆绑的版本发生冲突。

运行以下命令来卸载所有冲突的包:

for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done

apt-get 可能会报告您没有安装这些包。

注意:卸载 Docker 时,不会自动删除存储在 /var/lib/docker/ 中的图像、容器、卷和网络。如果您想从全新安装开始,并且希望清理所有现有数据,请阅读 卸载 Docker Engine 部分。

步骤 2:更新系统软件包

首先,更新系统中的现有软件包:

sudo apt update

步骤 3:安装依赖包

安装必要的依赖包,这些包用于通过 HTTPS 获取软件仓库:

sudo apt install apt-transport-https ca-certificates curl software-properties-common

步骤 4:添加 Docker 中科大 GPG 密钥

为了确保下载的 Docker 软件包的真实性和完整性,我们需要添加 Docker 的 GPG 密钥:

sudo mkdir -p /etc/apt/keyrings
sudo curl -fsSL http://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

可能的问题

  • 无法下载 GPG 密钥

    • 错误信息curl: (6) Could not resolve host: mirrors.ustc.edu.cn
    • 解决方案:在网上搜索其他镜像站点。参考连接:https://blog.csdn.net/m0_46471328/article/details/138043873

    背景知识:GPG 密钥用于验证软件包的完整性和真实性,确保下载的软件包没有被篡改。

步骤 5:添加 Docker 中科大镜像稳定版软件源

我们使用中科大的镜像源来加快下载速度:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] http://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

可能的问题

  • 镜像源添加失败

    • 错误信息bash: /etc/apt/sources.list.d/docker.list: Permission denied
    • 解决方案:确保使用 sudo 运行命令以获得必要的权限。

    背景知识:软件源是存储软件包的服务器地址,添加 Docker 的中科大镜像源可以加快下载速度,并提高可靠性。

步骤 6:再次更新软件包

添加新的 Docker 软件源后,再次更新系统中的软件包索引:

sudo apt update

可能的问题

  • 更新失败

    • 错误信息Failed to fetch http://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/dists/focal/stable/binary-amd64/Packages 404 Not Found
    • 解决方案:检查 sources.list.d/docker.list 文件中的镜像源地址是否正确,并确认中科大镜像源可用。

    背景知识:更新软件包索引是为了让系统知道最新的软件包信息,包括新添加的软件源中的包。

步骤 7:安装最新版本的 Docker

安装 Docker 及其依赖包:

sudo apt install docker-ce docker-ce-cli containerd.io

可能的问题

  • 安装失败

    • 错误信息E: Unable to locate package docker-ce
    • 解决方案:确保之前步骤中的镜像源已正确添加并更新了软件包索引。

    背景知识:Docker 是一个开源的平台,用于开发、交付和运行应用程序。它将应用程序及其依赖项打包到一个标准化的单元中,称为容器。

步骤 8:配置 Docker 使用镜像加速器(hub)

由于国内访问 Docker Hub 可能会有速度和连接问题,我们配置 Docker 使用腾讯云的镜像加速器:

sudo mkdir -p /etc/docker
echo '{"registry-mirrors": ["https://ccr.ccs.tencentyun.com"]
}' | sudo tee /etc/docker/daemon.json > /dev/null

可能的问题

  • 无法访问镜像加速器

    • 错误信息dial tcp: lookup ccr.ccs.tencentyun.com on 127.0.0.53:53: no such host
    • 解决方案:确保配置的镜像加速器地址正确并可访问,可能需要更换其他地址。地址 127.0.0.53:53 是一个本地 DNS 缓存服务,通常是由系统的 systemd-resolved 服务提供的。

    背景知识:镜像加速器可以提高从 Docker Hub 拉取镜像的速度,特别是在国内网络环境下。

步骤 9:重新启动 Docker 服务

使配置生效,重新启动 Docker 服务:

sudo systemctl daemon-reload
sudo systemctl restart docker

步骤 10:验证 Docker 安装

运行一个简单的 Docker 容器来验证安装是否成功:

sudo docker run hello-world

可能的问题

  • 无法访问 Docker Hub

    • 错误信息denied: requested access to the resource is denied unauthorized: authentication required
    • 解决方案:通过以下命令登录 Docker Hub:
    sudo docker login
    

    按照提示输入 Docker Hub 用户名和密码即可。

  • 网络连接问题

    • 错误信息dial tcp: lookup registry-1.docker.io on 127.0.0.53:53: no such host
    • 解决方案:配置镜像加速器并重启 Docker 服务后,再次尝试拉取镜像。

    背景知识hello-world 镜像是一个非常小的镜像,用于验证 Docker 是否正常工作。

实时查看 Docker 服务日志

你可以使用以下命令实时查看 Docker 服务的日志:

sudo journalctl -u docker.service -f

这个命令的作用是:

  • sudo:以超级用户权限运行命令。
  • journalctl:查看系统日志的命令。
  • -u docker.service:指定查看 Docker 服务的日志。
  • -f:实时查看日志输出,类似于 tail -f

附加资源

  • Docker 官方文档
  • Docker Hub
  • Docker 入门指南
  • Docker 社区支持

总结

通过上述步骤,我成功在 Ubuntu Server 22.04 上安装并配置了 Docker。主要就是镜像地址问题,通过调整配置文件和更换镜像源,我顺利解决了这些问题。希望你也一样。

相关文章:

在 Ubuntu Server 22.04 上安装 Docker 的详细步骤

在 Ubuntu Server 22.04 上安装 Docker 的详细步骤 本文档详细记录了在 Ubuntu Server 22.04 上安装 Docker 的完整过程,包括解决过程中遇到的问题。希望能对读者有所帮助。 安装过程,重点需要看官方文档。https://docs.docker.com/engine/install/ubu…...

前端使用 Konva 实现可视化设计器(18)- 素材嵌套 - 加载阶段

本章主要实现素材的嵌套(加载阶段)这意味着可以拖入画布的对象,不只是图片素材,还可以是嵌套的图片和图形。 请大家动动小手,给我一个免费的 Star 吧~ 大家如果发现了 Bug,欢迎来提 Issue 哟~ github源码 g…...

vue3 -layui项目-左侧导航菜单栏

1.创建目录结构 进入cmd,先cd到项目目录&#xff08;项目vue3-project&#xff09; cd vue3-project mkdir -p src\\views\\home\\components\\menubar 2.创建组件文件 3.编辑menu-item-content.vue <template><template v-if"item.icon"><lay-ic…...

Spring AOP(1)

目录 一、AOP 概述 什么是Spring AOP&#xff1f; 二、Spring AOP 快速入门 1、引入AOP依赖 2、编写AOP程序 三、Spring AOP 详解 1、Spring AOP的核心概念 &#xff08;1&#xff09;切点&#xff08;Pointcut&#xff09; &#xff08;2&#xff09;连接点&#xff…...

第1关 -- Linux 基础知识

闯关任务 完成SSH连接与端口映射并运行hello_world.py ​​​​ ssh -p 37367 rootssh.intern-ai.org.cn -CNg -L 7860:127.0.0.1:7860 -o StrictHostKeyCheckingno可选任务 1 将Linux基础命令在开发机上完成一遍 可选任务 2 使用 VSCODE 远程连接开发机并创建一个conda环境 …...

tensorflow keras Model.fit returning: ValueError: Unrecognized data type

题意&#xff1a;TensorFlow Keras 的 Model.fit 方法返回了一个 ValueError&#xff0c;提示数据类型无法识别 问题背景&#xff1a; Im trying to train a keras model with 2 inputs: an image part thats a tf.data.Dataset and a nor mal part represented by a pd.DataF…...

虚拟机固定配置IP

在Hyper-V中&#xff0c;vEthernet (Default Switch) 是Hyper-V自带的默认虚拟交换机&#xff0c;它允许虚拟机直接连接到宿主机网络或外部网络。这个虚拟交换机可以通过Hyper-V管理器或PowerShell等工具进行管理和配置。以下是具体的操作步骤&#xff1a; 一、通过Hyper-V管理…...

【Pytorch实用教程】pytorch中random_split用法的详细介绍

在 PyTorch 中,torch.utils.data.random_split 是一个非常有用的函数,用于将数据集随机分割成多个子集。这在机器学习和深度学习中非常常见,特别是当你需要将数据集分割成训练集和测试集或验证集时。这里是 random_split 的详细用法介绍: 功能 random_split 用于随机地将…...

第二讲:NJ网络配置

Ethernet/IP网络拓扑结构 一. NJ EtherNet/IP 1、网络端口位置 NJ的CPU上面有两个RJ45的网络接口,其中一个是EtherNet/IP网络端口(另一个是EtherCAT的网络端口) 2、网络作用 如图所示,EtherNet/IP网络既可以做控制器与控制器之间的通信,也可以实现与上位机系统的对接通…...

pytorch中常见的模型3种组织方式 nn.Sequential(OrderedDict)

在nn.Sequential中嵌套OrderedDict组织网络,以对层进行命名 import torch import torch.nn as nn from collections import OrderedDictclass OrderedDictCNN(nn.Module):def __init__(self):super(OrderedDictCNN, self).__init__()# 使用 OrderedDict 定义网络层self.model …...

达梦数据库DM8-索引篇

目录 一、前景二、名词三、语法1、命令方式创建索引1.1 创建索引空间1.2.1 创建普通索引并指定索引数据空间1.2.2 另一种没验证&#xff0c;官方写法1.3 复合索引1.4 唯一索引1.5 位图索引1.6 函数索引 2、创建表时候创建索引3、可视化方式创建索引3.1 打开DM管理工具3.2 找到要…...

【中项】系统集成项目管理工程师-第4章 信息系统架构-4.5技术架构

前言&#xff1a;系统集成项目管理工程师专业&#xff0c;现分享一些教材知识点。觉得文章还不错的喜欢点赞收藏的同时帮忙点点关注。 软考同样是国家人社部和工信部组织的国家级考试&#xff0c;全称为“全国计算机与软件专业技术资格&#xff08;水平&#xff09;考试”&…...

随机梯度下降 (Stochastic Gradient Descent, SGD)

SGD 是梯度下降法的一种变体。与批量梯度下降法不同&#xff0c;SGD 在每次迭代中仅使用一个样本&#xff08;或一个小批量样本&#xff09;的梯度来更新参数。它能更快地更新参数&#xff0c;并且可以更容易地跳出局部最优解。 原理 SGD 的基本思想是通过在每次迭代中使用不…...

TDengine 3.3.2.0 发布:新增 UDT 及 Oracle、SQL Server 数据接入

经过数月的开发和完善&#xff0c;TDengine 3.3.2.0 版本终于问世了。这一版本中既有针对开源社区的功能优化&#xff0c;也有从企业级用户需求出发做出的功能调整。在开源版本中&#xff0c;我们增强了系统的灵活性和兼容性&#xff1b;而在企业级版本中&#xff0c;新增了关键…...

Ubuntu 24.04 LTS 无法打开Chrome浏览器

解决办法&#xff1a; 删除本地配置文件&#xff0c;再次点击Chrome图标&#xff0c;即可打开。 rm ~/.config/google-chrome/ -rf ref: Google chrome not opening in Ubuntu 22.04 LTS - Ask Ubuntu...

linux中RocketMQ安装(单机版)及springboot中的使用

文章目录 一、安装1.1、下载RocketMQ1.2、将下载包上传到linux中&#xff0c;然后解压1.3、修改runserver.sh的jvm参数大小&#xff08;根据自己服务器配置来修改&#xff09;1.4、启动mqnamesrv &#xff08;类似于注册中心&#xff09;1.5、修改runbroker.sh的jvm参数大小&am…...

亚信安全终端一体化解决方案入选应用创新典型案例

近日&#xff0c;由工业和信息化部信息中心主办的2024信息技术应用创新发展大会暨解决方案应用推广大会成功落幕&#xff0c;会上集中发布了一系列技术水平先进、应用效果突出、产业带动性强的信息技术创新工作成果。其中&#xff0c;亚信安全“终端一体化安全运营解决方案”在…...

Django视图与URLs路由详解

在Django Web框架中&#xff0c;视图&#xff08;Views&#xff09;和URLs路由&#xff08;URL routing&#xff09;是Web应用开发的核心概念。它们共同负责将用户的请求映射到相应的Python函数&#xff0c;并返回适当的响应。本篇博客将深入探讨Django的视图和URLs路由系统&am…...

怎么关闭 Windows 安全中心,手动关闭 Windows Defender 教程

Windows 安全中心&#xff08;也称为 Windows Defender Security Center&#xff09;是微软 Windows 操作系统内置的安全管理工具&#xff0c;用于监控和控制病毒防护、防火墙、应用和浏览器保护等安全功能。然而&#xff0c;在某些情况下&#xff0c;用户可能需要关闭 Windows…...

洛谷看不了别人主页怎么办

首先&#xff0c;我们先点进去 可以看到&#xff0c;看不了一点 那我们看向上方&#xff0c;就可以发现&#xff0c;我们那有个URL&#xff0c;选中 把光标插到n和/中间 把.cn删了&#xff0c;变成国际服 我们就可以看了 但是国际服还没搭建完&#xff0c;跳转的时候可能503&a…...

通义千问多模态检索系统:图文视频混合输入全解析

通义千问多模态检索系统&#xff1a;图文视频混合输入全解析 1. 多模态检索的行业痛点与解决方案 在信息爆炸的时代&#xff0c;传统文本检索系统面临三大核心挑战&#xff1a; 跨模态匹配失效&#xff1a;用户用文字描述"红色跑车在沙漠驰骋"&#xff0c;系统却返…...

智鼎在线测评通关秘籍:2024最新51job题库实战解析与避坑指南

智鼎在线测评通关秘籍&#xff1a;2024最新51job题库实战解析与避坑指南 在竞争激烈的求职市场中&#xff0c;智鼎在线测评已成为众多知名企业筛选人才的第一道门槛。据统计&#xff0c;2024年使用智鼎测评系统的企业数量同比增长35%&#xff0c;而通过率却不足40%。这份指南将…...

LeRobot终极指南:用开源框架零门槛构建智能协作机械臂

LeRobot终极指南&#xff1a;用开源框架零门槛构建智能协作机械臂 【免费下载链接】lerobot &#x1f917; LeRobot: State-of-the-art Machine Learning for Real-World Robotics in Pytorch 项目地址: https://gitcode.com/GitHub_Trending/le/lerobot 副标题&#xf…...

ChatTTS流式音频合成实战:从原理到高并发优化

最近在做一个智能客服项目&#xff0c;需要将AI生成的文本实时转换成语音播报给用户。一开始我们用的是传统的TTS服务&#xff0c;文本传过去&#xff0c;等它全部合成完&#xff0c;再把整个音频文件返回。在用户量不大的时候还好&#xff0c;但一到高峰期&#xff0c;问题就全…...

2026年网盘性价比终极对决,10款网盘实测

上传龟速、下载受限、会员条约复杂——这是不少用户在2026年使用网盘时的真实痛点。面对市面上琳琅满目的云存储选项&#xff0c;很多人陷入了选择焦虑。为了解决这一问题&#xff0c;我们将视角聚焦于“效率”与“安全”&#xff0c;对市面上的10款主流网盘进行了系统性实测。…...

UI-TARS-desktop效果实测:响应速度快,识别准,桌面助手超实用

UI-TARS-desktop效果实测&#xff1a;响应速度快&#xff0c;识别准&#xff0c;桌面助手超实用 1. 产品概览与核心能力 UI-TARS-desktop是一款基于Qwen3-4B-Instruct-2507模型的轻量级AI桌面助手应用&#xff0c;通过vLLM推理服务提供快速响应。这款开源的多模态AI代理集成了…...

为什么工作越久的精英,最后都放弃了 MBTI?

很多人在职场和生活中遇到瓶颈&#xff0c;第一反应是去测测 MBTI 或者大五人格。 甚至很多大厂在招聘时&#xff0c;也会把这些测试当作金标准。但我观察到一个现象&#xff1a;真正处于决策核心的高净值人群&#xff0c;早就开始放弃这些“自报式”的性格测试了。为什么&…...

CherryStudio 在火山引擎上的实战应用:构建高可用微服务架构

在微服务架构大行其道的今天&#xff0c;我们团队也面临着许多开发者共同的烦恼&#xff1a;服务数量一多&#xff0c;管理起来就头疼。服务之间怎么互相找到对方&#xff1f;流量来了怎么公平分配&#xff1f;某个服务挂了会不会引发雪崩&#xff1f;这些问题不解决&#xff0…...

FPGA实战:增量式编码器信号处理与高精度位置解算

1. 增量式编码器在工业控制中的核心作用 增量式编码器就像工业设备的"眼睛"&#xff0c;它能精确捕捉旋转物体的位置和速度信息。在数控机床、机械臂、伺服电机等设备中&#xff0c;编码器的精度直接决定了整个系统的控制质量。我做过一个伺服电机项目&#xff0c;编…...

ChatGPT归档数据恢复机制深度解析:原理与实战指南

ChatGPT归档数据恢复机制深度解析&#xff1a;原理与实战指南 在AI应用开发中&#xff0c;数据管理是一个绕不开的话题。随着项目迭代和用户量增长&#xff0c;对话记录、训练数据、配置信息等会迅速累积。为了平衡存储成本与数据可用性&#xff0c;归档&#xff08;Archive&a…...