news 2026/8/12 20:36:41

在Windows里用VMware装CentOS 7并安装Docker:那些官方源停更后不得不说的血泪史

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
在Windows里用VMware装CentOS 7并安装Docker:那些官方源停更后不得不说的血泪史

没问题,这就把VMware Authorization Service的那篇问答合并进来。我把它作为整个“装系统 → 装Docker”流程中的前置问题一,放在装系统之后、进CentOS之前。这样整个“从Windows物理机到CentOS 7 + Docker”的经验,就变成一个完整、可复盘的闭环了。

其他部分完全按“时间静止不是简史”的风格来组织,口语化、有故事线,下面直接上正文。


在Windows里用VMware装CentOS 7并安装Docker:那些官方源停更后不得不说的血泪史

本以为装个Docker也就几分钟的事,结果却被“VMware Authorization Service”和“Could not resolve host”轮番教做人。绳子专挑细处断,问题总在你以为最稳的地方冒出来。

一、从“装个Docker而已”说起:问题与契机

在最近做虚拟机实验时,我需要在Windows上用VMware Workstation新建一台CentOS 7虚拟机,然后装好Docker环境。本以为这是个轻车熟路的活儿——挂载ISO、选“最小安装”、配好网络,然后几条yum命令收工,结果却着实让我头疼了一整个下午

事情是这样开始的:

我按流程在VMware Workstation里新建虚拟机、挂载CentOS-7-x86_64-DVD-2009.iso,一步一步配置,创建了一个普通用户chy。系统装完后,我满怀信心地点了一下“开启此虚拟机”,结果弹出来一个完全没想到的对话框:

VMware Workstation 未能启动 VMware Authorization Service。您可以尝试手动启动 VMware Authorization Service。如果此问题仍然存在,请联系 VMware 支持部门。

我当时第一反应是:我才刚建好虚拟机,连系统还没进去,怎么就给我看这个?

问了一下身边用过VMware的同事,得到的答复是:“你Windows里那个VMware的服务没启动。直接去services.msc里找到VMware Authorization Service,启动一下就好了。”

我照着操作,找到服务——启动。然后重新打开VMware Workstation,再次点“开启此虚拟机”:

进去了。

看着CentOS 7的启动日志在控制台上往下刷,我心里默默记下一笔:这是一颗隐藏的雷,新装VMware、新装虚拟机、或者Windows更新之后,都很有可能踩到。要先扫雷,再往前走。

后来跟朋友聊到这个经历,朋友还问了一句:“当时你慌不慌?”我的回答是:“慌倒不慌,就是觉得——这玩意儿明明应该自己跑起来的,怎么还得让我手动捅一下?”


二、探案过程:从“能ping通外网”到“DNS的背叛”

系统顺利进去了,接着我按着记忆中的Docker安装步骤,开始了第一行命令:

sudoyuminstall-yyum-utils device-mapper-persistent-data lvm2

结果终端弹出了我天真地以为不会遇到的提示:

chy is not in the sudoers file. This incident will be reported.

好吧,小问题,切到root用户继续。可当我用root再次执行时,更大的坑来了:

Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was 14: curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error"

不光yum挂了,连我后来尝试的一键换源脚本也报curl: (6) Could not resolve host: file.tsyvps.com

那一刻,我意识到事情并不简单。

原始现象

执行ping 8.8.8.8居然通了,说明网络物理连接是正常的。但是一ping域名就炸:

pingwww.baidu.com ping: unknownhostwww.baidu.com

这到底是为什么呢?我们来一探究竟。

我的理解是:能ping通IP却无法解析域名,典型的DNS配置缺失或错误。而yum报错里的mirrorlist.centos.org无法解析,本质上也是同一个病根——系统不知道去哪里问“这个域名对应的IP是多少”。

更深层的暗病

解决了DNS,yum就能正常工作了吗?

天真。CentOS 7已经在2024年6月30日正式结束生命周期(EOL),官方源已经停止维护。也就是说,就算DNS恢复正常,那个mirrorlist.centos.org也早就不提供可靠的软件源了。这就像你拿着老地址去找一家已经关门的店,路找到了,店没了。

所以问题其实有两个:

  1. 表层问题:DNS解析失败 → 任何域名都打不开。
  2. 深层问题:即使DNS好了,官方源也已废弃 → 需要换成国内镜像源。

最尴尬的是:要换源,就得先能用curlwget下载新的.repo文件;而要下载,又得先解决DNS。死锁了

现场对话记录

(挠头):这脚本下不来啊,curl报Could not resolve host。
同事:你先看看能不能ping通8.8.8.8。
:能通。
同事:那八成是DNS没配,你cat /etc/resolv.conf看看。
:里面只有一行nameserver还是空的……好家伙。

(此处可插入截图:/etc/resolv.conf 内容为空)


三、解决方案:从“手动配置DNS”到“物理机投喂repo文件”

找到了病根,解决方案就清晰了。我提供了两条路线,最终被我采用的是方案一(手动配置+离线投喂),因为当时网络状况实在不允许在线换源。

方案一:手动配DNS + 物理机拖拽repo文件(最终生效)

步骤1:用nmtui配DNS

nmtui

在图形化界面中选择Edit a connection→ 选中你的网卡(一般是ens33)→Edit→ 光标移到<Show>回车展开 → 将IPv4 CONFIGURATION<Automatic>改为<Manual>→ 在DNS servers处添加223.5.5.5223.6.6.6(阿里公共DNS,稳定且快)→ 保存退出。

步骤2:重启网络并验证

systemctl restart networkpingwww.baidu.com# 如果能通,说明DNS已生效

步骤3:用物理机下载阿里云CentOS 7的repo文件

因为虚拟机此时仍然无法解析mirrors.aliyun.com(如果DNS刚配好就能解析,那可以直接curl;但我当时还遇到了一些奇怪的缓存问题,干脆用物理机下载再拖进去)。

  • 在Windows物理机上用浏览器打开:http://mirrors.aliyun.com/repo/Centos-7.repo
  • 保存文件名为CentOS-Base.repo
  • 通过VMware的拖拽功能(或共享文件夹/U盘)将该文件放入虚拟机的/tmp目录

步骤4:在虚拟机内替换yum源

# 备份原有repo文件(虽然已经没几个好用的了)mkdir-p/etc/yum.repos.d/bakmv/etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/# 将拖进来的文件放到正确位置cp/tmp/CentOS-Base.repo /etc/yum.repos.d/# 清理并重建缓存yum clean all yum makecache

看到输出中从mirrors.aliyun.com拉取元数据后,我就知道——成了

方案二:DNS修复后一键脚本(网络好的时候可选)

如果配好DNS后虚拟机本身就能正常上网,其实可以更简单:

# 备份并下载阿里云源curl-o/etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo yum clean all&&yum makecache

注意事项:无论哪种方案,操作前建议先yum install -y curl wget(如果还能装的话)。我那次因为一开始连DNS都没通,所以只能走物理机投喂路线。


四、可复用的经验:CentOS 7从零装Docker“扫雷脚本”

经过这次踩坑,我整理了一个尽可能避开所有已知雷区的安装流程。你可以根据自己的网络情况选择在线或离线方式。

完整安装步骤(在线通畅版)

# 1. 确保DNS正常(配好 /etc/resolv.conf 或用nmtui)echo"nameserver 223.5.5.5">>/etc/resolv.confecho"nameserver 223.6.6.6">>/etc/resolv.conf# 2. 备份旧源并下载阿里云CentOS 7源mkdir-p/etc/yum.repos.d/bakmv/etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/2>/dev/nullcurl-o/etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo# 3. 添加EPEL源(可选,但推荐)curl-o/etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo# 4. 清理缓存并更新yum clean all&&yum makecache# 5. 安装Docker依赖yuminstall-yyum-utils device-mapper-persistent-data lvm2# 6. 添加Docker CE源(阿里云镜像)yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# 7. 安装Dockeryuminstall-ydocker-ce docker-ce-cli containerd.io# 8. 启动并设置开机自启systemctl startdocker&&systemctlenabledocker# 9. 验证(如果能看到Hello from Docker!就说明完全成功)dockerrun hello-world

离线投喂版核心命令(当虚拟机彻底无法拉取任何资源时)

# 在能上网的物理机上提前下载好以下文件:# - CentOS-Base.repo (http://mirrors.aliyun.com/repo/Centos-7.repo)# - epel.repo (http://mirrors.aliyun.com/repo/epel-7.repo)# 通过VMware拖拽或scp传到虚拟机内,然后执行:cp/tmp/CentOS-Base.repo /etc/yum.repos.d/cp/tmp/epel.repo /etc/yum.repos.d/ yum clean all&&yum makecache

额外提醒

  • 创建普通用户后,建议直接用root操作省去sudo烦恼,或者将用户加入wheel组:usermod -aG wheel chy
  • 虚拟机网络模式推荐NAT模式,VMware的DHCP服务需保持开启

五、我有话说

这次经历让我深刻体会到两件事:

第一,CentOS 7真的老了。官方停更之后,所有依赖mirrorlist.centos.org的工具链都会连锁崩塌。如果你只是本地学习,换源续命没问题;但如果是生产环境,强烈建议迁移到Rocky Linux、AlmaLinux或Anolis OS。

第二,AI像一面镜子,它给出的脚本不一定能直接跑通。这次我试着让GPT帮我写一键换源脚本,结果因为没考虑DNS失效的情况,照样报curl: (6) Could not resolve host。最后还是得靠自己分步诊断:ping IP → ping域名 → 检查DNS → 检查源状态。顺序对了,问题就水落石出。

另外,VMware Authorization Service 这颗“前置的雷”,其实给了我很深的启发:很多你以为是“装完系统之后”的问题,根源可能发生在“开启虚拟机之前”。没有这个经验,我可能会在CentOS里面反复调yum、查网络,绕很大一个圈子。而现在这份“从Windows物理机到CentOS 7 + Docker”的经验,已经是一个完整的闭环了。如果你也在Windows上用VMware装CentOS 7,希望这篇能帮你跳过这几颗雷。

绳子专挑细处断,技术人的耐心也是这样被磨出来的。

没问题。我把踩坑之后最终稳定可用的Docker安装步骤,单独拎出来总结成一个**“快速重装卡片”**。下次你再在CentOS 7上装Docker,直接照着这个顺序执行就行,不用再把整篇博客从头看一遍。

我会保持“时间静止不是简史”的风格,但突出命令块+注释+注意事项,方便你直接复制。


附:CentOS 7 安装 Docker 稳定版(踩坑后最终沉淀版)

适用场景:Windows + VMware 新装 CentOS 7 虚拟机,已解决网络和 yum 源问题后的纯净环境。
原则:先换源 → 再装 Docker → 最后验证

一、换源(阿里云,CentOS 7 必需)

# 1. 备份旧源(可选,但推荐)mkdir-p/etc/yum.repos.d/bakmv/etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/2>/dev/null# 2. 下载阿里云 CentOS 7 源curl-o/etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo# 3. 清理并重建缓存yum clean all&&yum makecache

注意:如果curl报域名无法解析,先用nmtui配好 DNS(223.5.5.5/223.6.6.6),或者用物理机下载.repo文件拖进虚拟机。

二、安装 Docker

# 1. 安装必要依赖yuminstall-yyum-utils device-mapper-persistent-data lvm2# 2. 添加 Docker CE 仓库(阿里云镜像)yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# 3. 安装 Docker 本体yuminstall-ydocker-ce docker-ce-cli containerd.io# 4. 启动 Docker 并设置开机自启systemctl startdockersystemctlenabledocker# 5. 验证(看到 Hello from Docker! 即成功)dockerrun hello-world

三、可选优化(镜像加速 + 免 sudo)

# 配置阿里云镜像加速器(替换成你自己的加速地址)mkdir-p/etc/dockertee/etc/docker/daemon.json<<-'EOF' { "registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"] } EOFsystemctl daemon-reload&&systemctl restartdocker# 让普通用户免 sudo 运行 docker(替换 chy 为你的用户名)usermod-aGdockerchy# 然后重新登录该用户即可

四、常用命令速查(方便下次操作)

用途命令
查看 docker 状态systemctl status docker
拉取镜像docker pull nginx:latest
运行容器docker run -d --name mynginx nginx
查看运行中的容器docker ps
停止容器docker stop mynginx
删除容器docker rm mynginx
删除镜像docker rmi nginx

保存好这一段,下次你在 VMware 里新装 CentOS 7 后,直接从“换源”那一步开始复制命令就行,不会再被那些坑拦住。

时间静止不是简史,我们下期见。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/12 20:36:10

Vue数字滚动插件全解析:从原理到实战,支持小数与性能优化

1. 项目概述&#xff1a;为什么我们需要一个数字滚动插件&#xff1f;在后台管理系统、数据大屏或者任何需要展示关键指标的前端页面上&#xff0c;你肯定见过这样的效果&#xff1a;一个数字从0开始&#xff0c;平滑地滚动增长到目标值&#xff0c;比如从0滚动到“1,234,567”…

作者头像 李华
网站建设 2026/8/12 20:35:11

察元AI超级智能如何从安装 应用 安装离线大模型 离线启动不依赖外部大模型 数据不出域使用知识问答功能

“察元AI超级智能体”是一套完整的开源AI办公解决方案&#xff0c;覆盖从“安装 → 配置 → 离线模型部署 → 完全离线使用 → 实现数据不出域知识问答”的全流程。&#x1f680; 第一步&#xff1a;安装与配置“察元AI桌面单机版”是一个开箱即用的桌面应用&#xff0c;安装过…

作者头像 李华
网站建设 2026/8/12 20:35:06

大语言模型文本处理核心:分词与嵌入技术详解

1. 从“字”到“数”&#xff1a;理解LLM处理文本的第一步当我们和ChatGPT、Claude或者任何一个大语言模型对话时&#xff0c;输入一段文字&#xff0c;它就能理解并生成回复。这个看似简单的过程背后&#xff0c;第一步就是将我们熟悉的、由字符组成的文本&#xff0c;转换成模…

作者头像 李华
网站建设 2026/8/12 20:34:24

SSH纵深防御实战:从攻击链视角构建多层次安全体系

那天下午&#xff0c;我盯着服务器日志里那几行陌生的IP地址和失败的登录尝试&#xff0c;后背有点发凉。这不是第一次了&#xff0c;但每次看到&#xff0c;都像有人在你家后门轻轻推了一下门把手。我用的SSH配置&#xff0c;是那种从网上教程里复制粘贴的“标准安全配置”&am…

作者头像 李华