在Linux上安装Docker并配置镜像加速器:从入门到实战
🔥「炎码工坊」技术弹药已装填!
点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】
引言
Docker作为容器化技术的标杆工具,已经成为现代软件开发和运维的必备技能。对于程序员和技术爱好者来说,在Linux系统上搭建Docker环境是探索云原生、微服务架构的第一步。本文将详解如何在主流Linux发行版(CentOS/Ubuntu)上完成Docker安装、配置国内镜像加速器、验证安装及服务管理的完整流程。
一、安装Docker引擎
1.1 系统要求
- 支持的系统:CentOS 7+/Ubuntu 16.04+/Debian 9+/Rocky Linux
- 内核版本:3.10以上
- 用户权限:需具备sudo权限
1.2 安装依赖包
# CentOS/Rocky Linux
sudo yum install -y yum-utils device-mapper-persistent-data lvm2# Ubuntu/Debian
sudo apt update && sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release
1.3 添加Docker官方仓库
# CentOS/Rocky Linux (使用阿里云镜像加速)
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# Ubuntu (官方源)
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
1.4 安装Docker引擎
# CentOS/Rocky Linux
sudo yum install -y docker-ce docker-ce-cli containerd.io# Ubuntu
sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io
替代方案:使用官方一键安装脚本(仅限测试环境)
curl -fsSL https://get.docker.com | sudo sh
二、配置国内镜像加速器(关键步骤)
2.1 阿里云镜像加速(需注册账号)
- 登录阿里云容器镜像服务[1]
- 获取专属加速地址(如
https://<your-id>.mirror.aliyuncs.com
) - 创建配置文件:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://<your-id>.mirror.aliyuncs.com"]
}
EOF
2.2 公共镜像源(中科大/腾讯云)
{"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn", // 中科大"https://hub-mirror.c.163.com", // 网易"https://mirror.ccs.tencentyun.com" // 腾讯云]
}
2.3 重启Docker服务
sudo systemctl daemon-reload
sudo systemctl restart docker
三、服务管理与开机自启
3.1 启动Docker服务
sudo systemctl start docker
3.2 设置开机自启
sudo systemctl enable docker
3.3 验证服务状态
sudo systemctl status docker
# 预期输出包含 "active (running)"
四、验证安装有效性
4.1 检查版本信息
docker --version
# 示例输出: Docker version 27.1.1, build 6312585
4.2 运行测试容器
docker run hello-world
# 成功输出 "Hello from Docker!" 标志安装完成
4.3 常用验证命令
功能 | 命令示例 |
查看运行容器 | docker ps |
拉取Nginx镜像 | docker pull nginx |
运行交互式容器 | docker run -it ubuntu bash |
五、权限优化:免sudo使用Docker
5.1 将当前用户加入docker组
sudo usermod -aG docker $USER
newgrp docker # 立即生效(或重新登录终端)
安全提示:docker组等价于root权限,生产环境请谨慎授权
六、常见问题排查
6.1 镜像拉取缓慢
- 确认
daemon.json
配置正确 - 切换多镜像源组合(如阿里云+中科大)
- 使用
docker info
查看镜像加速器是否生效
6.2 服务启动失败
- 检查端口冲突(默认2375/2376)
- 查看日志:
journalctl -u docker.service
- 清理旧配置:
sudo rm -rf /etc/docker/daemon.json
结语:进阶学习方向
- 容器编排:学习Docker Compose编排多容器应用
- 私有镜像仓库:搭建Harbor企业级镜像管理平台
- 安全加固:研究Docker Bench安全审计工具
- CI/CD集成:结合Jenkins/GitLab CI实现自动化部署
通过本文的完整实践,您已掌握Docker在Linux环境的核心部署能力。下一步建议尝试部署实际应用(如MySQL/Nginx),深入理解容器化技术带来的开发运维范式变革。
引用链接
[1]
阿里云容器镜像服务: https://cr.console.aliyun.com/
🚧 您已阅读完全文99%!缺少1%的关键操作:
加入「炎码燃料仓」
🚀 获得:
√ 开源工具红黑榜 √ 项目落地避坑指南
√ 每周BUG修复进度+1%彩蛋
(温馨提示:本工坊不打灰工,只烧脑洞🔥)
相关文章:
在Linux上安装Docker并配置镜像加速器:从入门到实战
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 Docker作为容器化技术的标杆工具,已经成为现代软件开发和运维的必备技能。对于程序员和技术爱好者来说,在Linux系统上搭建D…...

让 Deepseek 写一个尺码计算器
下面是一个简单的尺码计算器微信小程序的代码实现,包含页面布局、逻辑处理和样式。 1. 项目结构 size-calculator/ ├── pages/ │ ├── index/ │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ │ └── inde…...

代码随想录算法训练营第60期第五十三天打卡
大家好,我们今天来到了最后一章图论,其实图论比较难,涉及的算法也比较多,今天比较重要的就是深度优先搜索与广度优先搜索,后面的迪杰斯特拉算法等算法在我们求最短路都会涉及到,还有最近公共祖先࿰…...

Nacos实战——动态 IP 黑名单过滤
1、需求分析 一些恶意用户(可能是黑客、爬虫、DDoS 攻击者)可能频繁请求服务器资源,导致资源占用过高。针对这种问题,可以通过IP 封禁,可以有效拉黑攻击者,防止资源被滥用,保障合法…...

实验设计与分析(第6版,Montgomery)第5章析因设计引导5.7节思考题5.14 R语言解题
本文是实验设计与分析(第6版,Montgomery著,傅珏生译) 第5章析因设计引导5.7节思考题5.14 R语言解题。主要涉及方差分析,正态假设检验,残差分析,交互作用图。 dataframe<-data.frame( strengthc(9.60,9.…...

在Ubuntu20.04上安装ROS Noetic
本章教程,主要记录在Ubuntu20.04上安装ROS Noetic。 一、添加软件源 sudo sh -c . /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list二、设置秘钥 …...

python里面导入yfinance的时候报错
我的代码: import yfinance as yf import os proxy http://127.0.0.1:7890 # 代理设置,此处修改 os.environ[HTTP_PROXY] proxy os.environ[HTTPS_PROXY] proxydata yf.download("AAPL",start"2010-1-1",end"2021-8-1&quo…...

winform LiveCharts2的使用--图表的使用
介绍 对于图标,需要使用到livechart2中的CartesianChart 控件,是一个“即用型”控件,用于使用笛卡尔坐标系创建绘图。需要将Series属性分配一组ICartesianSeries。 例如下面代码,创建一个最简单的图表: cartesianCha…...

【计算机网络】IPv6和NAT网络地址转换
IPv6 IPv6协议使用由单/双冒号分隔一组数字和字母,例如2001:0db8:85a3:0000:0000:8a2e:0370:7334,分成8段。IPv6 使用 128 位互联网地址,有 2 128 2^{128} 2128个IP地址无状态地址自动配置,主机可以通过接口标识和网络前缀生成全…...

flutter简单自定义跟随手指滑动的横向指示器
ScrollController _scrollController ScrollController();double _scrollIndicatorWidth 60.w;//指示器的长度double _maxScrollPaddingValue 30.w;//指示器中蓝条可移动的最大距离double _scrollPaddingValue 0.0;//指示器中蓝条左边距(蓝条移动距离)overridevoid initSta…...
项目日记 -Qt音乐播放器 -搜索模块
最近期末,时间较少,详细内容之后再补充。 搜索 用得最多的一个 格式:https://music.163.com/api/search/get/web?s搜索词&type1&limit66&offset0 s 后跟搜索词 type 后跟类型,1表歌手 limit 限制每次最多返回多少…...
JavaScript 性能优化实战研讨
核心优化方向 执行效率:减少主线程阻塞内存管理:避免泄漏和过度消耗加载性能:加快解析与执行速度渲染优化:减少布局重排与重绘 🔥 关键优化策略与代码示例 1️⃣ 减少重排(Reflow)与重绘(Repaint) // 避免逐行修改样…...

有机黑鸡蛋与普通鸡蛋:差异剖析与选购指南
在我们的日常饮食结构里,鸡蛋始终占据着不可或缺的位置,是人们获取营养的重要来源。如今,市场上鸡蛋种类丰富,除了常见的普通鸡蛋,有机黑鸡蛋也逐渐崭露头角,其价格通常略高于普通鸡蛋。这两者究竟存在哪些…...

CTFHub-RCE 命令注入-无过滤
观察源代码 判断是Windows还是Linux 源代码中有 ping -c 4 说明是Linux 查看有哪些文件 127.0.0.1|ls 发现除了index.php文件外,还存在一个可疑的文件 打开flag文件 我们尝试打开这个文件 127.0.0.1|cat 19492844826916.php 可是发现 文本内容显示不出来&…...
spring IOC控制反转
控制反转,将对象的创建进行反转,常规情况下,对象都是开发者手动创建的,使用 loC 开发者不再需要创建对象,而是由IOC容器根据需求自动创建项目所需要的对象 不用IOC,所有对象IOC开发者自己创建使用IOC&…...
hot100 -- 1.哈希系列
1.两数之和 题目: 给定一个字符串 s ,请你找出其中不含有重复字符的 最长 子串 的长度。 题解: 方法1:暴力求解 def get_two_sum(nums, target):for i in range(len(nums)):for j in range(i1, len(nums)):if nums[i] nums[j…...

leetcode hot100刷题日记——31.二叉树的直径
二叉树直径详解 题目描述对直径的理解解答:dfs小TIPS 题目描述 对直径的理解 实际上,二叉树的任意一条路径均可以被看作由某个节点为起点,从其左儿子和右儿子向下遍历的路径拼接得到。 那我们找二叉树的直径(最大路径)…...

行为型:解释器模式
目录 1、核心思想 2、实现方式 2.1 模式结构 2.2 实现案例 3、优缺点分析 4、适用场景 5、注意事项 1、核心思想 目的:针对某种语言并基于其语法特征创建一系列的表达式类(包括终极表达式与非终极表达式),利用树结构模式…...
逻辑回归详解:从原理到实践
在机器学习的广阔领域中,逻辑回归(Logistic Regression)虽名为 “回归”,实则是一种用于解决二分类(0 或 1)问题的有监督学习算法。它凭借简单易懂的原理、高效的计算性能以及出色的解释性,在数…...
FastAPI集成APsecheduler的BackgroundScheduler+mongodb(精简)
项目架构: FastAPI(folder) >app(folder) >core(folder) >models(folder) >routers(folder) >utils(folder) main.py(file) 1 utils文件夹下新建schedulers.py from apscheduler.schedulers.background import BackgroundScheduler from apschedu…...
本地部署FreeGPT+内网穿透公网远程访问,搞定ChatGPT外网访问难题
FreeGPT是一个基于GPT 3.5/4的ChatGPT聊天网页用户界面,提供了一个开放的聊天界面,开箱即用。ChatGPT是非常热门的,但访问体验一直不太理想。为了解决这一问题,出现了各类方法和工具,其中FreeGPT是一款非常实用的…...

linux 1.0.3
挂载 这个虚拟机啥时候都能挂起 会有一个这个东东 选择连接虚拟机,然后就连到linux了 这有两个键,一个是和主机连接一个是和虚拟机连接 先把U盘拔掉 原本是没有这个盘的,但是插上去之后,电脑创建了一个虚拟的盘 也就是图中的F…...
基于RK3588的智慧农场系统开发|RS485总线|华为云IOT|node-red|MQTT
一、硬件连接流程 本次采用的是 总线型拓扑:所有设备并联到两根 RS485 总线上(A 和 B-) 二、通信协议配置 1. 主从通信模式 RS485 是半双工:同一时间只能有一个设备发送数据主从架构:通常一个主设备(…...
解锁程序人生学习成长密码,从目标设定开始
解锁程序人生学习成长密码,从目标设定开始 关键词:程序员成长、目标设定、学习路径、技能提升、职业规划、刻意练习、反馈机制 摘要:本文深入探讨程序员如何通过科学的目标设定方法实现职业成长。文章从目标设定的重要性出发,详细介绍了SMART原则、OKR方法等技术,并结合程…...
简单cnn
数据增强 在图像数据预处理环节,为提升数据多样性,可采用数据增强(数据增广)策略。该策略通常不改变单次训练的样本总数,而是通过对现有图像进行多样化变换,使每次训练输入的样本呈现更丰富的形态差异&…...

C#集合循环删除某些行
你想要在遍历集合(例如List)的同时删除某些元素时,直接在循环中删除元素可能会导致问题,因为这可能会改变集合的大小和导致索引问题; 可以用for循环的倒序来删除; 如果要删除满足特定条件的所有元素&…...
相机定屏问题分析四:【cameraserver 最大request buffer超标】后置视频模式预览定屏闪退至桌面
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:相机定屏问题分析三:【配流ConfigStream失败】外屏打开相机视频照片人像来回切换后,相机页面卡死,点击没反应9055522 这一篇我们开始讲: 相机定屏问题分析四:【cameraserver 最大request buffer超…...

【Linux 学习计划】-- 进程地址空间
目录 进程地址的引入 进程地址空间基础原理 区域划分的本质 如何理解进程地址空间 越界访问的本质 进一步理解写时拷贝 重谈 fork 返回值 结语 进程地址的引入 我们先来看一段代码: 首先我们可以看到,父进程和子进程是可以同时可以看到一个变量…...
告别重复 - Ansible 配置管理入门与核心价值
告别重复 - Ansible 配置管理入门与核心价值 还记得我们在 SRE 基础系列中反复强调的“减少琐事 (Toil)”和“拥抱自动化”吗?想象一下这些场景: 你需要部署一个新的 Web 服务集群,每台服务器都需要安装 Nginx、配置防火墙规则、同步 Web 内容、启动服务……手动操作不仅耗时…...
3D Gaussian splatting 04: 代码阅读-提取相机位姿和稀疏点云
目录 3D Gaussian splatting 01: 环境搭建3D Gaussian splatting 02: 快速评估3D Gaussian splatting 03: 用户数据训练和结果查看3D Gaussian splatting 04: 代码阅读-提取相机位姿和稀疏点云3D Gaussian splatting 05: 代码阅读-训练整体流程3D Gaussian splatting 06: 代码…...