虚拟机中安装Docker Engine的关键是前置环境配置:需64位Linux系统且内核≥3.10,卸载旧版Docker及podman,永久禁用SELinux和firewalld,配置国内镜像源(如阿里云或清华源),安装后启用docker服务并验证运行hello-world容器成功。在虚拟机中安装 Docker Engine,关键不是“能不能装”,而是“装得稳不稳、跑得顺不顺”。很多失败案例其实卡在前置环境没调好,而不是 Docker 本身出错。下面分几步说清楚,每步都对应真实踩过的坑。
确认系统与内核基础
必须满足两个硬条件:64 位 linux 系统 + 内核 ≥ 3.10。centos 7/8、ubuntu 20.04+、rhel 8/9 都支持,但要注意:
- CentOS 7 内核较老(默认 3.10),overlay2 存储驱动可能无法启用,建议升级内核或改用 CentOS Stream / RHEL 8+
- Ubuntu 推荐 22.04 LTS,自带较新内核和 systemd,兼容性最好
- 运行
uname -r查内核版本,arch确认是 x86_64
清理旧版、禁用干扰组件
Docker 运行依赖干净的容器运行时环境,SELinux 和防火墙是两大常见拦路虎:
- 卸载旧 Docker:
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine podman runc(CentOS/RHEL) - 永久关闭 SELinux:
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config,然后重启或执行sudo setenforce 0 - 停用并禁用 firewalld:
sudo systemctl stop firewalld && sudo systemctl disable firewalld
配置国内镜像源再安装
官方源在国内直连极不稳定,务必换国内镜像源,否则安装卡住、后续拉镜像超时都是常态:
- CentOS/RHEL:添加阿里云源
sudo dnf config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
若为 RHEL 9,还需替换发行版变量:sudo sed -i 's/$releasever/9/g' /etc/yum.repos.d/docker-ce.repo - Ubuntu:使用清华源或阿里源,例如:
curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpgecho "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null - 安装命令统一:
sudo yum install docker-ce docker-ce-cli containerd.io(CentOS)或sudo apt update && sudo apt install docker-ce docker-ce-cli containerd.io(Ubuntu)
启动服务并验证可用性
装完不等于能用,必须确保 daemon 正常监听、普通用户可操作:
- 启动并设为开机自启:
sudo systemctl start docker && sudo systemctl enable docker - 验证状态:
sudo systemctl status docker,看到 active (running) 才算成功 - 测试拉取与运行:
sudo docker run hello-world,输出欢迎信息即通过 - 让当前用户免 sudo:
sudo usermod -aG docker $USER,然后退出终端重登











