Docker安装步骤与Nginx容器部署(虚拟机8080端口映射容器80端口)实操指南

2026-09-21 22:54:38 74阅读
包含两部分实操指引:一是Docker环境部署步骤,指导用户在虚拟机上完成Docker安装,涵盖卸载旧版本、配置软件源、安装Docker引擎、启动服务并设置开机自启、验证安装有效性等全流程操作;二是Nginx容器启动操作,待Docker环境就绪后,通过指定端口映射规则,将虚拟机8080端口与Nginx容器内部80端口绑定,执行对应容器启动命令,即可快速部署可通过虚拟机8080端口访问的Nginx服务,支撑Web服务、反向代理等基础场景使用。

从零到一:虚拟机环境下Docker安装全指南,避坑+实操一步到位


在云原生开发、微服务部署和本地测试环境搭建的场景中,Docker已经成为开发者必不可少的容器化工具,而很多开发者由于不想改动本地物理机的系统环境、需要模拟多节点集群,或是习惯用Linux虚拟机作为开发主力环境,往往会选择先部署Linux虚拟机,再在其中安装Docker,但不少新手在实际操作中总会遇到网络失败、权限报错、服务启动异常等问题,今天我们就把虚拟机安装Docker的全流程、注意事项和常见坑点讲透,跟着做就能一次安装成功。

前期准备:选对虚拟机基础环境,成功一半

在正式安装前,先确认你的虚拟机环境满足基础要求,避免后续踩没必要的坑:

Docker安装步骤与Nginx容器部署(虚拟机8080端口映射容器80端口)实操指南

  1. 系统选择:优先选择官方长期支持(LTS)的Linux发行版,比如Ubuntu 20.04/22.04、CentOS 7/Stream 8/9、Debian 11/12,不建议使用过于老旧的系统版本(比如CentOS 6),否则会出现Docker版本不兼容、无法安装依赖的问题。
  2. 配置要求:虚拟机建议分配至少2核CPU、2G内存、20G以上磁盘空间——Docker本身占用资源不高,但后续拉取镜像、运行容器需要预留足够资源,配置过低会出现容器启动卡顿、服务OOM的问题。
  3. 网络检查:确保虚拟机可以正常连接外网,同时建议把虚拟机网络设置为「桥接模式」或「NAT模式」,避免后续拉取镜像时出现网络不通的问题;如果在公司内网环境,提前确认网络代理设置是否会屏蔽Docker官方源。
  4. 系统清理:如果你的虚拟机之前尝试装过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官方提供了自动配置源、安装依赖的一键脚本,全程只需要执行几行命令即可,适合第一次安装的用户:

  1. 先更新系统包索引,安装基础依赖:
    # 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
  2. 执行官方一键安装脚本,自动完成源配置、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 手动安装步骤
    1. 添加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
    2. 配置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
    3. 更新包索引,安装指定版本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
  • CentOS 7 手动安装步骤
    1. 配置Docker稳定版yum源:
      sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    2. 清理yum缓存并重建,安装Docker:
      sudo yum makecache fast
      sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

安装后必做配置:解决权限、速度、自启动问题

安装完成后不要着急跑容器,这几个配置做完能解决后续90%的使用问题:

  1. 配置普通用户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版本信息就说明配置成功。

  2. 配置镜像加速,解决国内拉取镜像慢的问题 Docker默认的官方镜像仓库部署在海外,国内环境拉取镜像经常超时,我们需要配置国内镜像加速器:
    1. 先创建Docker配置目录:
      sudo mkdir -p /etc/docker
    2. 编辑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
    3. 重启Docker服务并设置开机自启:
      sudo systemctl daemon-reload
      sudo systemctl restart docker
      sudo systemctl enable docker

      配置完成后可以执行docker info,查看Registry Mirrors选项,能看到你配置的镜像地址就说明加速生效了。

  3. 调整虚拟交换机/防火墙配置(虚拟机特有注意点) 如果你需要让其他设备(比如你的物理机、同局域网的其他机器)访问虚拟机里运行的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环境的网络、服务都运行正常。

常见坑点排查

  1. 安装时报依赖冲突/版本不兼容:大概率是系统版本太旧,或者之前装过旧版本Docker残留文件,先回到第一步的清理步骤完全卸载旧包,再更新系统到最新补丁版本后重新安装即可。
  2. Docker服务启动失败:先执行systemctl status docker查看报错日志,如果是cgroup相关错误,检查虚拟机的内核版本是否低于3.10(可以用uname -r查看内核版本),内核版本过低请升级系统内核;如果是配置文件格式错误,检查/etc/docker/daemon.json是不是有语法错误(比如多了逗号、引号不匹配,JSON格式对语法要求很严格)。
  3. 拉取镜像一直超时:先检查虚拟机本身能不能正常访问外网,再确认镜像源配置是否正确,可以尝试ping一下镜像源地址测试连通性;如果是公司内网环境,需要额外在daemon.json里配置HTTP/HTTPS代理。
  4. 物理机访问不到虚拟机里的Docker容器:先在虚拟机本地用curl访问http://127.0.0.1:8080看能不能正常返回,如果虚拟机本地能访问但物理机访问不了,先检查虚拟机网络模式是不是仅主机模式(仅主机模式下物理机无法和虚拟机互通,需要改成NAT或桥接),再检查虚拟机防火墙、安全组有没有放开对应端口。

其实虚拟机安装Docker本身流程并不复杂,绝大多数报错都来源于环境版本不匹配、网络配置错误或者前期残留冲突,只要跟着步骤做好前期检查、配置好国内镜像源和用户权限,就能快速搭建出稳定的容器运行环境,后续不管是搭本地开发环境、测试K8s集群,还是部署个人应用都能事半功倍。

文章版权声明:除非注明,否则均为亚朵原创文章,转载或复制请以超链接形式并注明出处。