能装,而且这是阿里云 ECS 最基础、最常用的玩法之一。
别被那些复杂的概念吓到,Docker 就是个容器引擎,跟你的操作系统是平行的关系。只要你的 ECS 实例满足几个硬性条件,直接装就行。
1. 先确认环境(避坑指南)
- 操作系统:主流 Linux 发行版都支持,比如 CentOS 7/8, Ubuntu 18.04/20.04/22.04, Debian 9+。Windows Server 也可以,但国内用户用 Windows 跑 Docker 的极少,除非你有特殊需求,否则建议直接用 Linux。
- 内核版本:Linux 内核最好 3.10 以上(现在的新系统基本都是 4.x 或 5.x,没问题)。
- 内存:虽然 Docker 本身不占多少内存,但你跑的镜像(比如 MySQL、Redis、Java 应用)很吃内存。如果只有 1G 内存,跑个简单的 Nginx 还行,跑重服务会 OOM(内存溢出)。建议至少 2G 起步,推荐 4G+。
2. 怎么装?(两条路)
路径 A:官方脚本一键安装(最快,适合新手)
如果你不想记命令,想“无脑”装,用这个:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
--mirror Aliyun:指定使用阿里云镜像源,下载速度快,避免超时。- 装完后,启动并设置开机自启:
systemctl start docker systemctl enable docker
路径 B:手动安装(更稳妥,适合老手)
如果你担心脚本自动改配置有隐患,或者公司安全规范要求严格,就手动来:
-
卸载旧版本(如果有):
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine -
安装依赖和仓库:
sudo yum install -y yum-utils sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -
安装 Docker CE:
sudo yum install -y docker-ce docker-ce-cli containerd.io -
启动并验证:
sudo systemctl start docker sudo docker version # 看客户端和服务端是否都有版本号输出 sudo docker run hello-world # 测试运行,成功会打印 Hello from Docker!
3. 阿里云 ECS 特有的注意事项(关键!)
很多人装了 Docker 发现网络访问不了服务,或者速度慢,通常是以下原因:
-
安全组没开端口:
Docker 默认绑定在0.0.0.0,也就是说所有网卡都能访问。如果你在容器里跑了个 8080 端口,你必须在阿里云控制台的 ECS -> 安全组 -> 入方向 添加规则,放行 TCP 8080 端口。不开安全组,外面根本连不上。 -
防火墙冲突:
阿里云 ECS 默认可能开启了firewalld或iptables。虽然 Docker 会自动管理 iptables 规则,但有时会有冲突。如果遇到问题,可以尝试暂时关闭 firewalld 测试:systemctl stop firewalld systemctl disable firewalld注意:生产环境不建议直接关防火墙,而是通过
firewall-cmd开放对应端口。 -
Swap 分区问题:
某些版本的 Docker 对 Swap 敏感。如果服务器没有 Swap 或者 Swap 太小,Docker 启动可能会报错。建议在/etc/sysctl.conf中添加:vm.swappiness=0然后执行
sysctl -p生效。 -
提速器配置:
拉取镜像慢?去阿里云控制台搜索“容器镜像服务”,里面有个“镜像提速器”地址。把它配置到 Docker 的 daemon.json 里,速度提升明显。
4. 常见误区澄清
- “我买了轻量应用服务器能不能装?”
能。轻量应用服务器底层就是 ECS,只是管理界面不同。SSH 进去后操作完全一样。 - “Docker 会占用大量 CPU 吗?”
不会。Docker 本身是个进程管理器,开销极小。你感觉卡,是因为你跑的 Java 应用或数据库太耗资源,不是 Docker 的问题。 - “需要买云盘吗?”
数据持久化很重要。Docker 容器重启后数据会丢。务必使用-v挂载宿主机目录,或者使用 Docker Volume。不要把所有数据都存在容器内部。
总结
- 能装,Linux 系统首选。
- 一键脚本最快,手动安装最稳。
- 安全组必须配好端口,否则白搭。
- 数据要挂载,别指望容器自带持久化。
装完跑个 docker ps,看到状态是 Up,就说明搞定了。接下来就是拉镜像、跑业务的事。
CLOUD云计算