Ubuntu24.04 LTS 版本 Linux 系统在线和离线安装 Docker 和 Docker compose
一、更换软件源并更新系统
在 Ubuntu 24.04 LTS 中,系统引入了全新的软件源配置格式。现在的源配置文件内容更加结构化且清晰,主要包含了软件类型 (Types)、源地址 (URIs)、版本代号 (Suites) 以及组件 (Components) 等信息。

# cat /etc/apt/sources.list.d/ubuntu.sourcesTypes: deb
URIs: http://cn.archive.ubuntu.com/ubuntu/
Suites: noble noble-updates noble-backports
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpgTypes: deb
URIs: http://security.ubuntu.com/ubuntu/
Suites: noble-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
将源切换到清华镜像,加快国内用户的下载速度:
sudo sed -i 's/\(cn.archive\|security\).ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list.d/ubuntu.sources && sudo apt update && sudo apt upgrade -y

切换完源后,更新系统:
# 更新软件包列表
sudo apt update# 升级所有已安装的软件包
sudo apt upgrade -y# 处理依赖关系的变化(包括升级和降级)
sudo apt dist-upgrade -y# 清理未使用的依赖项
sudo apt autoremove -y# 清理旧的软件包缓存
sudo apt autoclean# 清理残留配置文件
sudo apt purge $(dpkg --list | grep '^rc' | awk '{print $2}') # 删除旧内核
sudo apt purge $(dpkg --list | grep 'linux-image-' | awk '{print $2}' | grep -v $(uname -r)) # 检查并修复损坏的依赖关系
sudo apt --fix-broken install# 清理日志文件
# 删除超过7天的日志
sudo journalctl --vacuum-time=7d
# 或 保留最近的100MB日志
sudo journalctl --vacuum-size=100M
由于首次更新会包含内核更新,我们需要执行重启操作,让内核和各种补丁生效。
sudo reboot
二、安装基础的系统软件工具
在配置 Linux 开发环境时,有一些基础且实用的系统工具是必不可少的。
首先更新软件包索引并安装 openssh-server ,因为我虚拟机安装的是个人桌面版 Ubuntu,默认是不开启SSH连接的:
sudo apt update && sudo apt install -y openssh-server
然后,按照常用工具,不局限我所列,根据个人需求合理调整:build-essential(编译工具)、git(版本控制)、curl 和 wget(文件下载)、net-tools(网络工具)、htop 和 glances(用于系统资源监控)、iftop 和 iotop (分别用于网络和磁盘 IO 监控)、zip unzip tar gzip(常用解压压缩工具)、ca-certificates (提供 SSL/TLS 证书,用于验证 HTTPS 连接的安全性)、gnupg (管理 GPG 密钥,用于加密、签名及验证软件来源的真实性):
sudo apt install -y build-essential git curl wget net-tools htop glances iftop iotop zip unzip tar gzip ca-certificates gnupg

三、在线命令安装 Docker 和 Docker Compose
使用清华大学开源软件镜像站的软件仓库 mirrors.tuna.tsinghua.edu.cn,作为安装源:
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
安装最新版的 Docker 和 相关插件(比如:docker-compose-plugin 等); docker-buildx-plugin 是 Docker 官方提供的一个 扩展构建工具,它增强了 Docker 原生的镜像构建功能,主要专注于 多平台镜像构建(一次性为多种 CPU 架构(如 AMD64、ARM64)构建镜像,无需手动切换环境,比如: docker buildx build --platform linux/amd64,linux/arm64 -t your-image:tag ) 和 高效缓存管理。docker buildx build 是 docker build 功能扩展版,推荐替代原生构建功能扩展版,推荐替代原生构建 :
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
创建配置文件 /etc/docker/daemon.json ,自定义配置文件:
sudo tee /etc/docker/daemon.json <<EOF
{"builder": {"gc": {"defaultKeepStorage": "100GB","enabled": true}},"data-root": "/home/redhat/MyDocker","experimental": false,"registry-mirrors": ["https://dockerproxy.net","https://docker.hpcloud.cloud","https://docker.m.daocloud.io","https://docker.unsee.tech","https://docker.1panel.live","http://mirrors.ustc.edu.cn","https://docker.chenby.cn","http://mirror.azure.cn","https://dockerpull.org","https://dockerhub.icu","https://hub.rat.dev"]
}
EOF
重新加载配置并重启 Docker 服务,并设置开机自启:
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl enable docker --now
验证 Docker:
# 查看 Docker 信息
docker info
# 查看 Docker 版本
docker --version
# 查看 Docker Compose 版本
docker compose version

四、Ubuntu中24.04 LTS 离线安装 Docker 和 Docker Compose
通过 .deb 包离线安装 Docker CE、Docker CE CLI 和 Docker Compose , 适用于无法访问互联网的环境。首先,进入官网下载页面,寻找离线 .deb 包,如下图所示:
1.下载对应 离线 .deb 包
wget https://download.docker.com/linux/ubuntu/dists/jammy/pool/stable/amd64/docker-ce_28.0.1-1~ubuntu.22.04~jammy_amd64.debwget https://download.docker.com/linux/ubuntu/dists/jammy/pool/stable/amd64/docker-ce-cli_28.0.1-1~ubuntu.22.04~jammy_amd64.debwget https://download.docker.com/linux/ubuntu/dists/jammy/pool/stable/amd64/containerd.io_1.7.25-1_amd64.debwget https://download.docker.com/linux/ubuntu/dists/jammy/pool/stable/amd64/docker-buildx-plugin_0.21.1-1~ubuntu.22.04~jammy_amd64.debwget https://download.docker.com/linux/ubuntu/dists/jammy/pool/stable/amd64/docker-compose-plugin_2.6.0~ubuntu-jammy_amd64.deb
2.安装 .deb 包在目标服务器上,进入存放 .deb 文件的目录,依次安装 Docker CE、Docker CE CLI 和 containerd.io
sudo dpkg -i docker-ce_28.0.1-1~ubuntu.22.04~jammy_amd64.debsudo dpkg -i docker-ce-cli_28.0.1-1~ubuntu.22.04~jammy_amd64.debsudo dpkg -i containerd.io_1.7.25-1_amd64.deb
3.配置 Docker 服务,并配置/etc/docker/daemon.json文件(内容和在线安装配置文件内容类似)
sudo systemctl daemon-reloadsudo systemctl restart dockersudo systemctl enable docker --now
4.安装插件
sudo dpkg -i docker-buildx-plugin_0.21.1-1~ubuntu.22.04~jammy_amd64.debsudo dpkg -i docker-compose-plugin_2.6.0~ubuntu-jammy_amd64.deb
5.验证
# 查看 Docker 信息
docker info
# 查看 Docker 版本
docker --version
# 查看 Docker Compose 版本
docker compose version
--------------------------------------
没有自由的秩序和没有秩序的自由,同样具有破坏性。

相关文章:
Ubuntu24.04 LTS 版本 Linux 系统在线和离线安装 Docker 和 Docker compose
一、更换软件源并更新系统 在 Ubuntu 24.04 LTS 中,系统引入了全新的软件源配置格式。现在的源配置文件内容更加结构化且清晰,主要包含了软件类型 (Types)、源地址 (URIs)、版本代号 (Suites) 以及组件 (Components) 等信息。 # cat /etc/apt/sources.li…...
从 pip 到 Poetry:开启高效 Python 包管理新时代
目录 从 pip 到 Poetry:开启高效 Python 包管理新时代 一、pip 与 Poetry 的基本区别 二、Poetry 相对于 pip 的优势 1. 依赖管理与版本锁定 2. 内置虚拟环境管理 3. 统一的项目管理流程 4. 精细的依赖解析器 5. 更友好的 CLI 工具 三、如何快速上手 Poetry…...
MTK Android12 最近历史任务 最左侧的清除历史任务改到页面底部
Android最近历史任务页面 -清除所有- 功能按钮放到底部 文章目录 需求需求原因 修改的核心文件实现方案最近历史任务基本UI结构了解代码实现思路实现方案RecentsViewTaskOverlayFactory在overview_actions_containerOverviewActionsView 实际效果 总结 需求 最近历史任务重&am…...
TCP协议支持全双工原因TCP发送接收数据是生产者消费者模型
一、TCP支持全双工的原因 TCP协议支持全双工,即使用TCP协议进行通信时,服务端和客户端可以同时进行数据的发送和接收,互不干扰,实现同时双向传输数据。 这是因为使用TCP协议通信时,读写套接字的文件描述符既用来发送…...
文件操作2
7. ⽂件读取结束的判定 7.1 被错误使用的 feof 牢记:在文件读取过程中,不能用 feof 函数的返回值直接来判断文件的是否结束。 feof 的作用是:当文件读取结束的时候,判断读取结束的原因是否是:遇到文件尾结束。 1. …...
linux中yum和wget指令的区别
yum 和 wget 都是 Linux 上的下载工具,但它们的用途、下载方式和适用场景不同。以下是它们的 主要区别: 1. yum 是软件包管理器,wget 是文件下载工具 功能yumwget用途安装、更新和管理 RPM 软件包从 HTTP/HTTPS/FTP 下载文件工作方式通过 yu…...
《又是二叉树?递归与回溯的经典应用》
“ 我喜欢晴天,你恰好是最好的太阳” 226.翻转二叉树 力扣题目链接(opens new window) 翻转一棵二叉树。 这道题我们可以通过递归法解决,我们只要递归的把每一个节点的左右孩子反转一下就能解决了。 代码如下: var invertTree function(ro…...
Qt/C++音视频开发82-系统音量值获取和设置/音量大小/静音
一、前言 在音视频开发中,音量的控制分两块,一个是控制播放器本身的音量,绝大部分场景都是需要控制这个,这个不会影响系统音量的设置。还有一种场景是需要控制系统的音量,因为播放器本身的音量是在系统音量的基础上控…...
从零到精通文本指令:打造个人AI助理的完整指令库(Prompt 指令实操)
文章目录 从零到精通文本指令:打造个人AI助理的完整指令库(Prompt 指令实操)创作指令创作指令**润色指令****扩写指令** 问答指令直接问答材料问答时间逻辑问答 总结、摘要、翻译指令总结信息抽取翻译 从零到精通文本指令:打造个人AI助理的完整指令库(Pr…...
C# NX二次开发:获取模型中所有的草图并获取草图中的对象
大家好,今天接着讲NX二次开发获取草图相关。 获取草图的方法是从workPart中获取,如下面的例子所示: List<Tag> tags new List<Tag>(); SketchCollection sketchCollection workPart.Sketches; …...
基于SpringBoot和MybatisPlus实现通用Controller
基于SpringBoot和MybatisPlus实现通用Controller,只需要创建实体类和mapper接口,单表增删改查接口就已经实现,提升开发效率 1.定义通用controller package com.xian.controller;import cn.hutool.core.map.MapUtil; import com.baomidou.my…...
锤头线和倒锤头线
1、锤头线 是指一根没有上影线或上影线很短,而下影线很长,实体却很小的K线。其K线实体可以是阴线或是阳线,类似于T字。 锤头线的特征有以下三点: 实体很小,下影线长度大于或等于实体的两倍。下影线越长时,如股价处于低位,则上涨的可能性越大。 如股价处于高位,则下跌…...
蓝桥杯嵌入式组第十二届省赛题目解析+STM32G431RBT6实现源码
文章目录 1.题目解析1.1 分而治之,藕断丝连1.2 模块化思维导图1.3 模块解析1.3.1 KEY模块1.3.2 LED模块1.3.3 LCD模块1.3.4 TIM模块1.3.5 UART模块1.3.5.1 uart数据解析 2.源码3.第十二届题目 前言:STM32G431RBT6实现嵌入式组第十二届题目解析源码&#…...
STM32上实现简化版的AUTOSAR DEM模块
文章目录 摘要摘要 在一些可以不使用AUTOSAR的项目中,往往也有故障检测和DTC存储的需求,开发一套类似于AUTOSAR DEM模块的软件代码,能够满足DTC的检出和存储,使用FalshDB代替Nvm模块,轻松构建持久化存储,如果你也有这样的需求,请阅读本篇,希望能够帮到你。 /*********…...
如何用终端运行一个SpringBoot项目
在项目开发阶段,为了能够快速测试一个SpringBoot项目的执行结果,就可以采用终端(黑窗)运行查看,因为我们不能要求每一个客户都安装idea并且适配我们的项目版本。 下面将展示打包运行这两个方面的过程: 创建…...
多线程与并发编程 面试专题
多线程与并发编程 面试专题 线程的基础概念基础概念线程的创建线程的状态线程的终止方式start 与 run 区别线程的常用方法 锁锁的分类深入synchronized深入ReentrantLock死锁问题 阻塞队列线程池 线程的基础概念 基础概念 进程与线程 进程:指运行中的程序。 比如我…...
米尔电子-LR3568-烧录鸿蒙
最近开始搞鸿蒙,用的是米尔的LR3568。 开贴记录。 首先要在LR3568上烧录鸿蒙 一、安装准备 1.从米尔电子上下载资料 网址:米尔开发者中心 注册完成后,进入页面,选择我的产品,添加PN和SN PN和SN可以在包装盒上找到 添加到这里…...
Redis Sentinel 及 Redisson 连接问题全解析
在 Kubernetes (k8s) 环境下使用 Redis Sentinel 进行高可用部署时,可能会遇到 failover 超时、Sentinel 误判、Spring Boot 连接失败 以及 Redisson 配置错误等问题。本文将对这些问题进行汇总分析,并提供详细的解决方案。 1️⃣ Redis Sentinel 介绍 …...
基于Flink SQL的实时指标多维分析模型
数据流程介绍 1.创建源表kafka接入消息队列数据,定义字段映射规则; 2.创建目标表es_sink配置Elasticsearch输出; 3.通过多级视图(tmp→tmp_dedup→tmp1/tmp2→tmp3→tmp_groupby)实现数据清洗、去重、状态计算&#x…...
算法刷题整理合集(一)
算法刷题整理合集(一) 本篇博客旨在记录自已的算法刷题练习成长,里面注有详细的代码注释以及和个人的思路想法,希望可以给同道之人些许帮助。本人也是算法小白,水平有限,如果文章中有什么错误或遗漏之处&am…...
C++ STL—— String库
在C编程中,字符串操作是几乎每个项目都会涉及的基础功能。C标准模板库(STL)中的string类为我们提供了强大而灵活的工具,使得字符串的处理变得简单高效。无论是字符串的创建、修改、查找,还是复杂的文本处理,…...
【从零开始学习计算机科学】数据库系统(二)关系数据库 与 关系代数
【从零开始学习计算机科学】数据库系统(二)关系数据库 与 关系代数 关系数据库结构化查询语言SQL数据定义语言(DDL)数据查询语言(Data Query Language, DQL)数据操纵语言(Data Manipulation Language, DML)数据控制语言(Data Control Language, DCL)关系型数据库的优…...
DoS攻击防范
一、网络架构优化 使用CDN或反向代理 通过内容分发网络(CDN)或反向代理(如Nginx)分散流量,将请求分发到多个服务器节点,减轻单点压力,同时过滤异常请求。 负载均衡技术 部署负载均衡设备&#…...
Linux驱动开发实战(四):设备树点RGB灯
Linux驱动开发实战(四):设备树点RGB灯 文章目录 Linux驱动开发实战(四):设备树点RGB灯前言一、驱动实现1.1 驱动设计思路1.2 关键数据结构1.3 字符设备操作函数1.4 平台驱动探测函数1.5 匹配表和平台驱动结…...
vue中,watch里,this为undefined的两种解决办法
提示:vue中,watch里,this为undefined的两种解决办法 文章目录 [TOC](文章目录) 前言一、问题二、方法1——使用function函数代替箭头函数()>{}三、方法2——使用that总结 前言 尽量使用方法1——使用function函数代替箭头函数()…...
设计模式C++
针对一些经典的常见的场景, 给定了一些对应的解决方案,这个就叫设计模式。 设计模式的作用:使代码的可重用性高,可读性强,灵活性好,可维护性强。 设计原则: 单一职责原则:一个类只做一方面的…...
前端构建工具进化论:从Grunt到Turbopack的十年征程
前端构建工具进化论:从Grunt到Turbopack的十年征程 一、石器时代:任务自动化工具(2012-2014) 1.1 Grunt:首个主流构建工具 // Gruntfile.js 典型配置 module.exports function(grunt) {grunt.initConfig({concat: {…...
设备预测性维护:企业降本增效的关键密码
在当今竞争激烈的商业战场中,企业犹如一艘在波涛汹涌大海上航行的巨轮,要想乘风破浪、稳步前行,降本增效便是那至关重要的 “船锚”,帮助企业在复杂的市场环境中站稳脚跟。而设备预测性维护,正是开启企业降本增效大门的…...
css基本功
为什么 ::first-letter 是伪元素? ::first-letter 的作用是选择并样式化元素的第一个字母,它创建了一个虚拟的元素来包裹这个字母,因此属于伪元素。 grid布局 案例一 <!DOCTYPE html> <html lang"zh-CN"><head&…...
信号处理抽取多项滤波的数学推导与仿真
昨天的《信号处理之插值、抽取与多项滤波》,已经介绍了插值抽取的多项滤率,今天详细介绍多项滤波的数学推导,并附上实战仿真代码。 一、数学变换推导 1. 多相分解的核心思想 将FIR滤波器的系数 h ( n ) h(n) h(n)按相位分组,每…...
