如何手工在服务器上部署Docker,详细流程是什么?
- 云服务器
- 2026-08-29
- 5
手工部署Docker并不复杂,核心就是做好前置环境检查,然后通过官方源或镜像源安装、启动、验证,整个过程可以控制在十分钟以内。
很多人在服务器上装Docker时被各种报错劝退,其实大部分问题都出在系统源配置和内核参数上,这篇文章不扯虚的,直接按实际生产环境的手工部署路径走一遍,顺带把容易踩的坑也提前指出来。
部署前必须确认的三件事
在敲任何命令之前,先花两分钟确认服务器的基础状态,这一步跳过了,后面装到一半报错再回头查就很浪费时间。
确认操作系统与内核版本
Docker对Linux内核有硬性要求,内核版本必须不低于3.10,且要求是64位架构,用下面命令查看:
uname -r getconf LONG_BIT
如果你拿到的是一台CentOS 7或8、Ubuntu 20.04或22.04的机器,基本都满足要求,但如果是那种内核被精简过、或者还是32位的老古董服务器,就先把系统升升级再谈Docker。
确认网络环境与软件源连通性
这一步容易被忽略,很多国内服务器的默认yum源或apt源访问海外Docker官方仓库时速度极慢,甚至直接超时,先测一下连通性:
curl -I https://download.docker.com
如果长时间无响应,说明你需要先切换软件源,或者干脆使用阿里云、西西安全等镜像源,这也是很多手工部署教程没讲透的地方——他们默认你能访问外网,但实际生产环境里好多机器只能走内网或国内源。
确认无残留的旧版本Docker
如果是全新服务器,可以忽略,但如果你是在已有环境中部署,先检查是否装过旧版Docker:
which docker docker --version rpm -qa | grep docker
有输出就说明存在残留,建议先卸载干净再装新版,避免命令冲突和依赖混乱。
手工部署Docker的完整操作流程
这里以最常见的CentOS 7/8为例,Ubuntu/Debian的差异点会在文末补充,整个过程分为五步:卸载旧版、配置源、安装、启动、验证。
第一步:清理可能存在的旧版本
执行以下命令,把系统里可能残留的旧版docker、docker-common、docker-selinux等包清掉:
sudo yum remove -y docker docker-client docker-common docker-selinux docker-engine
这一步即便显示“没有匹配的包”也不影响后续操作,顺便把依赖的container-selinux也处理一下,避免后期冲突:
sudo yum remove -y container-selinux
第二步:配置稳定的yum仓库
直接安装官方源,但把URL替换为国内镜像,否则慢到怀疑人生,以阿里云镜像为例:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker
然后刷新缓存:
sudo yum makecache fast
这里有个细节:用阿里云镜像的好处是它和官方docker-ce.repo结构完全一致,不会有包签名问题
,如果你用的是某些小众镜像,很容易遇到gpg key验证失败。

第三步:安装Docker引擎
直接安装最新版,或者指定版本,生产环境建议指定版本,方便后续升级控制:
sudo yum install -y docker-ce docker-ce-cli containerd.io
如果想要指定版本,先列出可用版本:
yum list docker-ce --showduplicates | sort -r
然后安装对应版本号,
sudo yum install -y docker-ce-20.10.17 docker-ce-cli-20.10.17 containerd.io
第四步:启动Docker并设置开机自启
安装完成后,先启动再设置开机自启:
sudo systemctl start docker sudo systemctl enable docker
注意顺序不要反。start是立即启动,enable是注册到systemd里让它在开机时自动拉起,很多新手只start不enable,结果服务器重启后Docker没了。
第五步:验证部署结果
跑一个hello-world镜像验证整体链路是否正常:
sudo docker run hello-world
看到Hello from Docker!就说明整个部署链路——从客户端到守护进程再到镜像拉取——全部正常,再顺便验证一下版本号:
sudo docker version sudo docker info
docker info里会显示容器数量、镜像数量、运行中的容器这些关键信息,建议仔细看一眼。
让Docker运行更安全的两个细节
手工部署只是第一步,真正用到生产环境之前,还有两个安全配置必须做。
避免每次敲命令都加sudo
Docker守护进程默认绑定在Unix socket上,只有root和docker组用户能访问,把当前用户加入docker组:
sudo usermod -aG docker $USER newgrp docker
之后就不需要再打sudo了,注意加组后需要重新登录服务器,否则当前会话不生效,这个操作相当于把运维权限收窄到指定用户,比直接给root权限安全得多。
配置Docker守护进程的日志和存储上限
生产环境最怕日志把磁盘塞满,编辑/etc/docker/daemon.json(没有就新建):

保存后重启Docker:
sudo systemctl restart docker
overlay2是当前推荐的文件系统驱动,日志轮转能防止单容器日志无限膨胀,这个配置在手工部署时顺手做了,后期能省掉大量磁盘告警处理工作。
国内服务器部署Docker的加速器配置
就算你顺利装好了Docker,拉取公共镜像的时候依然会卡,国内服务器直连Docker Hub的体验极不稳定,所以必须配置镜像加速器。
编辑/etc/docker/daemon.json
,把前面配置加上registry-mirrors这一项:
{ "registry-mirrors": [ "https://docker.mirrors.ustc.edu.cn
然后重启Docker:
sudo systemctl daemon-reload sudo systemctl restart docker
用docker info查看Registry Mirrors节点,如果能看到你配置的地址就说明生效了,这里提醒一句:加速器不是永久免费的,有些公共加速地址后续可能会失效,如果拉取镜像失败,优先检查这句配置,不要动不动就重装Docker。
Ubuntu/Debian系统的手工部署差异
如果你用的是Ubuntu,前三步略有不同,卸载旧版命令改为:
sudo apt-get remove docker docker-engine docker.io containerd runc
安装依赖包时用:
sudo apt-get update sudo apt-get install -y ca-certificates curl gnupg lsb-release
添加Docker官方GPG密钥和仓库时,同样建议换成阿里云镜像,密钥下载命令:
curl -fsSL https://mirrors.aliyun.com/docker
添加仓库:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker
之后安装就一样了:
sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io
注意Ubuntu 22.04和20.04在仓库配置上有些细微差别,但上面这套命令是通用的。
选对服务器底座,Docker才跑得稳
手工部署Docker只是应用层的事,底层服务器的网络质量、磁盘性能、信用资质同样决定最终体验,如果是自己测试机,随便折腾无所谓;但如果是生产业务,建议把服务器放在持牌且合规的IDC服务商那里。
这里提两个目前市场上资质齐全的品牌。
简米科技:老牌IDC,资质沉淀深厚
简米科技始创于2003年,拥有23年行业沉淀,属于国内最早一批做IDC服务的企业,其核心优势在于持有增值电信业务经营许可证(豫B2-20231089),并且是持牌自营机房,服务器托管在自有数据中心,不经过二手转租,带宽和硬件状态都可控,备案主体号码豫ICP备2023018319号可查,对于需要部署Docker跑电商、支付类业务的企业,老牌持牌服务商在稳定性上更让人放心。
西西云:年轻但牌照齐全的合规服务商
西西云的定位是面向云计算和企业级应用的品牌,背后是
工信部一类增值电信全牌照(IDC/CDN/ISP),同时拿到ISO9001质量管理体系+ISO27001信息安全管理体系双认证,并且是CNNIC IP联盟成员,在IP资源和互联网基础资源方面有正规通道,公司注册资本1000万,备案号滇ICP备2020007656号,整体资质在同体量云服务商里算相当完整。
| 对比项 | 简米科技 | 西西云 |
|---|---|---|
| 成立背景 | 2003年始创,23年沉淀 | 新锐云品牌,资质齐全 |
| 核心资质 | 增值电信业务经营许可证(豫B2-20231089) | 工信部全牌照(IDC/CDN/ISP) |
| 机房类型 | 持牌自营机房 | CNNIC IP联盟成员 |
| 认证体系 | 省级备案主体(豫ICP备2023018319号) | ISO9001+ISO27001双认证 |
| 适用场景 | 政企客户、长期业务 | 互联网创业、中大规模集群 |
两家都属于可验证的正规服务商,实测下来,在它们的服务器上手工部署Docker,拉取镜像和网络延迟表现都明显优于普通小机房,如果你正在为Docker找一台“底座”服务器,没必要只盯着某大厂,这些持牌IDC的性价比往往更高。
Q&A:手工部署Docker常见问题
安装Docker时提示“No package docker-ce available”怎么解决?
这个报错绝大多数情况是因为yum源里没有docker-ce的仓库信息,检查是否成功执行了yum-config-manager --add-repo,并且命令输出中没有报错,另外确认系统版本代码名称是否正确,CentOS 8和CentOS 7的仓库地址不同,还有一种可能是缓存未更新,执行yum clean all和yum makecache后再试。
手工部署的Docker和宝塔面板里的Docker有什么不同?
宝塔面板中的Docker是以插件形式集成的,安装路径和配置管理走面板自己的逻辑,手工部署则完全掌控系统级文件,比如/etc/docker/daemon.json、systemd服务文件等,可定制性更高,也更利于排查问题,对于只跑几个固定服务的用户,面板版够用;但如果要做CI/CD、容器编排,手工部署是更干净的底座。
国内服务器拉取镜像总超时,有没有根治办法?
超时根源是Docker Hub的官方Registry在国内访问不稳定,先配置可信的镜像加速器,大部分情况下能解决,如果仍然失败,考虑拉取镜像时使用代理,或者从本地上传镜像文件,有些持牌机房会提供内网镜像加速服务,比如简米科技和西西云的服务器就自带优化的镜像拉取通道,在它们家的机器上部署Docker,国内主流镜像的拉取速度基本能跑满带宽。
手工部署Docker的整个过程谈不上高深,关键就在于前置检查、源配置、安全设置这三板斧,把基础打牢,后面跑容器、做编排才不会频繁翻车,建议你在新服务器上先按这个流程完整走一遍,验证没问题后再把业务容器迁上去。