Docker安装步骤与Nginx容器部署(虚拟机8080端口映射容器80端口)实操指南
包含两部分实操指引:一是Docker环境部署步骤,指导用户在虚拟机上完成Docker安装,涵盖卸载旧版本、配置软件源、安装Docker引擎、启动服务并设置开机自启、验证安装有效性等全流程操作;二是Nginx容器启动操作,待Docker环境就绪后,通过指定端口映射规则,将虚拟机8080端口与Nginx容器内部80端口绑定,执行对应容器启动命令,即可快速部署可通过虚拟机8080端口访问的Nginx服务,支撑Web服务、反向代理等基础场景使用。
从零到一:虚拟机环境下Docker安装全指南,避坑+实操一步到位
在云原生开发、微服务部署和本地测试环境搭建的场景中,Docker已经成为开发者必不可少的容器化工具,而很多开发者由于不想改动本地物理机的系统环境、需要模拟多节点集群,或是习惯用Linux虚拟机作为开发主力环境,往往会选择先部署Linux虚拟机,再在其中安装Docker,但不少新手在实际操作中总会遇到网络失败、权限报错、服务启动异常等问题,今天我们就把虚拟机安装Docker的全流程、注意事项和常见坑点讲透,跟着做就能一次安装成功。
前期准备:选对虚拟机基础环境,成功一半
在正式安装前,先确认你的虚拟机环境满足基础要求,避免后续踩没必要的坑:
- 系统选择:优先选择官方长期支持(LTS)的Linux发行版,比如Ubuntu 20.04/22.04、CentOS 7/Stream 8/9、Debian 11/12,不建议使用过于老旧的系统版本(比如CentOS 6),否则会出现Docker版本不兼容、无法安装依赖的问题。
- 配置要求:虚拟机建议分配至少2核CPU、2G内存、20G以上磁盘空间——Docker本身占用资源不高,但后续拉取镜像、运行容器需要预留足够资源,配置过低会出现容器启动卡顿、服务OOM的问题。
- 网络检查:确保虚拟机可以正常连接外网,同时建议把虚拟机网络设置为「桥接模式」或「NAT模式」,避免后续拉取镜像时出现网络不通的问题;如果在公司内网环境,提前确认网络代理设置是否会屏蔽Docker官方源。
- 系统清理:如果你的虚拟机之前尝试装过Docker残留包,建议先执行卸载命令清理旧版本,避免版本冲突:
以Ubuntu/Debian系为例:
sudo apt-get remove docker docker-engine docker.io containerd runc
以CentOS/RHEL系为例:
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
正式安装:官方标准流程,稳定不踩坑
目前官方最推荐的安装方式是使用官方脚本自动安装,或者配置软件源手动安装,两种方式都很可靠,不建议直接用系统默认源里的Docker包——默认源的版本往往滞后很多,后续升级、维护都会有问题。
方式1:一键脚本安装(最适合新手)
Docker官方提供了自动配置源、安装依赖的一键脚本,全程只需要执行几行命令即可,适合第一次安装的用户:
- 先更新系统包索引,安装基础依赖:
# Ubuntu/Debian执行 sudo apt update && sudo apt install -y ca-certificates curl gnupg lsb-release # CentOS/RHEL执行 sudo yum install -y yum-utils ca-certificates curl
- 执行官方一键安装脚本,自动完成源配置、Docker及相关组件(containerd、docker-compose插件等)安装:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
这里加上
--mirror Aliyun参数是为了默认使用阿里云镜像源,国内环境下载速度会快很多,避免因为网络超时导致安装失败。方式2:手动配置源安装(适合需要自定义版本的用户)
如果你需要指定安装特定版本的Docker,可以选择手动配置软件源的方式,以最常用的Ubuntu 22.04和CentOS 7为例:
- Ubuntu 22.04 手动安装步骤:
- 添加Docker官方GPG密钥:
sudo mkdir -m 0755 -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
- 配置Docker稳定版软件源:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- 更新包索引,安装指定版本Docker:
sudo apt update # 先查看可用版本 apt-cache madison docker-ce # 安装目标版本(把<版本字符串>替换成上一步查到的版本号,比如5:24.0.6-1~ubuntu.22.04~jammy) sudo apt install -y docker-ce=<版本字符串> docker-ce-cli=<版本字符串> containerd.io docker-buildx-plugin docker-compose-plugin
- 添加Docker官方GPG密钥:
- CentOS 7 手动安装步骤:
- 配置Docker稳定版yum源:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- 清理yum缓存并重建,安装Docker:
sudo yum makecache fast sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
- 配置Docker稳定版yum源:
安装后必做配置:解决权限、速度、自启动问题
安装完成后不要着急跑容器,这几个配置做完能解决后续90%的使用问题:
- 配置普通用户Docker权限(避免每次加sudo)
默认情况下,只有root用户和docker组的用户才能操作Docker,普通用户执行docker命令会报
permission denied错误,这时候只需要把当前用户加入docker组即可:# 创建docker组(安装完成后一般会自动创建,若提示已存在可忽略) sudo groupadd docker # 把当前用户加入docker组 sudo usermod -aG docker $USER # 刷新用户组配置,不用重启虚拟机就能生效 newgrp docker
配置完成后可以执行
docker version验证,不需要加sudo就能看到Docker版本信息就说明配置成功。 - 配置镜像加速,解决国内拉取镜像慢的问题
Docker默认的官方镜像仓库部署在海外,国内环境拉取镜像经常超时,我们需要配置国内镜像加速器:
- 先创建Docker配置目录:
sudo mkdir -p /etc/docker
- 编辑daemon.json配置文件,写入镜像源地址(这里用阿里云、网易云、中科大的公开镜像源组合,稳定性更高):
sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [ "https://docker.mirrors.ustc.edu.cn", "http://hub-mirror.c.163.com", "https://mirror.baidubce.com" ] } EOF - 重启Docker服务并设置开机自启:
sudo systemctl daemon-reload sudo systemctl restart docker sudo systemctl enable docker
配置完成后可以执行
docker info,查看Registry Mirrors选项,能看到你配置的镜像地址就说明加速生效了。
- 先创建Docker配置目录:
- 调整虚拟交换机/防火墙配置(虚拟机特有注意点)
如果你需要让其他设备(比如你的物理机、同局域网的其他机器)访问虚拟机里运行的Docker容器,记得确认虚拟机的网络模式是桥接,且放开防火墙对应的容器端口,或者直接关闭测试环境的防火墙(生产环境不建议):
# CentOS系统关闭防火墙 sudo systemctl stop firewalld sudo systemctl disable firewalld # Ubuntu系统关闭ufw防火墙 sudo ufw disable
安装验证与入门测试
所有配置完成后,我们可以运行官方的hello-world镜像,验证整个环境是否正常:
docker run hello-world
如果看到输出Hello from Docker!的欢迎信息,就说明你的虚拟机Docker环境已经完全安装配置成功了,还可以进一步试运行一个Nginx容器,验证端口映射是否正常:
之后在物理机的浏览器里输入http://<你的虚拟机IP>:8080,如果能看到Nginx的默认欢迎页面,就说明整个Docker环境的网络、服务都运行正常。
常见坑点排查
- 安装时报依赖冲突/版本不兼容:大概率是系统版本太旧,或者之前装过旧版本Docker残留文件,先回到第一步的清理步骤完全卸载旧包,再更新系统到最新补丁版本后重新安装即可。
- Docker服务启动失败:先执行
systemctl status docker查看报错日志,如果是cgroup相关错误,检查虚拟机的内核版本是否低于3.10(可以用uname -r查看内核版本),内核版本过低请升级系统内核;如果是配置文件格式错误,检查/etc/docker/daemon.json是不是有语法错误(比如多了逗号、引号不匹配,JSON格式对语法要求很严格)。 - 拉取镜像一直超时:先检查虚拟机本身能不能正常访问外网,再确认镜像源配置是否正确,可以尝试ping一下镜像源地址测试连通性;如果是公司内网环境,需要额外在daemon.json里配置HTTP/HTTPS代理。
- 物理机访问不到虚拟机里的Docker容器:先在虚拟机本地用curl访问
http://127.0.0.1:8080看能不能正常返回,如果虚拟机本地能访问但物理机访问不了,先检查虚拟机网络模式是不是仅主机模式(仅主机模式下物理机无法和虚拟机互通,需要改成NAT或桥接),再检查虚拟机防火墙、安全组有没有放开对应端口。
其实虚拟机安装Docker本身流程并不复杂,绝大多数报错都来源于环境版本不匹配、网络配置错误或者前期残留冲突,只要跟着步骤做好前期检查、配置好国内镜像源和用户权限,就能快速搭建出稳定的容器运行环境,后续不管是搭本地开发环境、测试K8s集群,还是部署个人应用都能事半功倍。

