云服务器 Docker 安装教程:照着敲,20分钟搞定
新买的云服务器,装环境能折腾死人:PHP 版本不对、MySQL 编译报错、Node 和 Python 打架,好不容易跑起来,换台机器又得从头来一遍。Docker 就是来解决这事的——把应用和它的依赖打包成一个“集装箱”,搬到哪台机器上都能一样跑。这篇写给国内站长和开发者,从零开始在云服务器上装好 Docker,顺便把国内网络环境下最坑的几个地方填平。照着做,20 分钟能跑起第一个容器。
一、先看系统,选对版本
登录服务器(ssh root@你的IP),先确认系统:
cat /etc/os-release
Docker 对 Ubuntu 20.04/22.04、Debian 11/12、CentOS 7/8 支持都很好。CentOS 7 已经 EOL,新机器建议直接上 Ubuntu 22.04,别问我是怎么知道的,老系统后面装什么都容易卡壳。
顺手更新一下软件源:
# Ubuntu/Debian
apt update -y
# CentOS
yum update -y
二、装 Docker(用国内脚本,别硬扛官方源)
官方脚本走的是国外源,国内服务器经常卡在下载那一步。直接指定阿里云镜像:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh --mirror Aliyun
如果你之前装过旧版本,先清一下:
sudo apt remove docker docker-engine docker.io containerd runc -y # Debian系
sudo yum remove docker docker-client docker-common -y # RedHat系
装完启动并设开机自启:
sudo systemctl enable docker
sudo systemctl start docker
docker version # 能看到 Client 和 Server 两段信息就说明成了
三、配镜像加速器(这一步别省)
装完 Docker 不代表能顺畅拉镜像。docker pull 默认去 Docker Hub,国内经常拉半天或者直接超时。你需要配一个加速器。
登录阿里云控制台 → 容器镜像服务 → 镜像加速器,能拿到一个专属地址(形如 https://xxxx.mirror.aliyuncs.com)。然后写配置:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://你的ID.mirror.aliyuncs.com"],
"log-driver": "json-file",
"log-opts": { "max-size": "100m", "max-file": "3" }
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
注意 log-opts 那两行——限制容器日志大小。不加这个,某个容器日志能写到几十 G,把磁盘塞满,网站直接挂。这个是血泪教训。
四、验证:跑个 Nginx 试试
docker run -d -p 80:80 --name myweb nginx
浏览器访问 http://你的服务器IP,看到 “Welcome to nginx!” 就成功了。
顺手记几个常用命令:
docker ps # 看运行中的容器
docker logs myweb # 看日志
docker stop myweb # 停
docker rm -f myweb # 删
docker exec -it myweb bash # 进容器
五、(可选)装上 Docker Compose
真到部署阶段,一个网站往往要 Nginx + 后端 + MySQL + Redis 好几个容器,手敲 docker run 会疯。装个 Compose,写个 docker-compose.yml 一次起全套:
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose -v
避坑提醒(新手最容易踩的三个坑)
- 小内存机器硬跑全家桶:1核1G 的机器上 Docker + MySQL + 一个 Java 后端,OOM 是常事。1G 内存最多跑跑 Nginx 或者静态站,要跑数据库至少 2G 起步。
- 数据全放容器里:容器一删,数据全没。数据库目录、上传文件、配置,统统用
-v挂载到宿主机,这是铁律。 - 安全组和防火墙没放行:容器启动了、
docker ps也正常,但外网打不开——八成是云厂商安全组没开端口,或者系统firewalld/ufw挡着。先查这两处,别急着怀疑 Docker。
机器选不对,教程白搭
说实话,Docker 跑得顺不顺,很看底子。系统盘是机械盘,镜像层读写慢得想砸键盘;公网线路差,拉个镜像等到天荒地老。我自己常用的沐雨云服务器(https://www.myyvps.com)在这方面比较省心:纯 SSD 固态硬盘,拉镜像、建容器响应快;BGP/CN2 优质线路,国内访问稳定;带单机 50-200G DDoS/CC 防御,跑电商站、游戏服不怕被刷;香港/美国/日本节点免备案,做外贸独立站很合适。配置上 2核2G 轻量云 12.8元/月起,跑 Docker + 小站完全够,支持支付宝/微信付款,不用折腾信用卡。
总结一下
- 系统优先选 Ubuntu 22.04,别用已停更的老系统
- 安装用
get.docker.com脚本并加--mirror Aliyun - 必配镜像加速器 + 日志大小限制
- 常用命令记住
ps / logs / exec / rm四个就够日常 - 数据一律挂载卷,端口放行查安全组
- 内存 2G 起步,选 SSD + 优质线路的机器
装好这一步,后面部署什么都只是“拉镜像、跑容器”的事了。



这一切,似未曾拥有