You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Vagrantfile解决Ubuntu18.04虚拟机Docker安装失败问题?

在Vagrant的Ubuntu 18.04虚拟机中成功安装Docker的配置方案

嘿,我帮不少开发者解决过在Vagrant的Ubuntu 18.04虚拟机里装Docker失败的问题——你用的官方一键脚本 curl -sSL https://get.docker.com/ | sh 在旧版本Ubuntu上容易栽跟头,多半是依赖缺失或者源配置的问题。直接修改Vagrantfile的provision部分就能搞定,给你两种靠谱的方案:

方案一:分步手动安装(最稳定推荐)

这个方法避开一键脚本的兼容性问题,一步步配置Docker的官方源和依赖,成功率极高。把你的Vagrantfile改成这样:

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/bionic64"
  # 可选:配置私有网络,方便主机访问虚拟机
  config.vm.network "private_network", ip: "192.168.33.10"

  # 配置Docker安装的provision脚本
  config.vm.provision "shell", inline: <<-SHELL
    # 更新系统包到最新版本
    apt-get update && apt-get upgrade -y

    # 安装Docker依赖的必备工具
    apt-get install -y ca-certificates curl gnupg lsb-release

    # 创建密钥存储目录并添加Docker官方GPG密钥
    mkdir -p /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg

    # 添加Docker官方APT源到系统配置
    echo \
      "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
      $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null

    # 更新源并安装完整的Docker套件
    apt-get update
    apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

    # 可选:将vagrant用户加入docker组,避免每次执行docker命令都加sudo
    usermod -aG docker vagrant
  SHELL
end

关键说明:

  • Ubuntu 18.04(bionic)的默认源没有最新版Docker,手动添加官方源能保证安装的是兼容稳定的版本
  • 提前安装ca-certificates等依赖,避免一键脚本因缺失工具而失败
  • 加入docker组是为了后续操作更便捷,不用反复输入sudo

方案二:修复一键脚本的依赖问题

如果你坚持想用官方一键脚本,只需先补全依赖再执行脚本,同时避免交互弹窗中断:

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/bionic64"

  config.vm.provision "shell", inline: <<-SHELL
    # 先更新系统并安装必备依赖
    apt-get update && apt-get install -y ca-certificates curl gnupg
    # 执行官方脚本时添加强制配置参数,避免交互弹窗中断Vagrant流程
    curl -sSL https://get.docker.com/ | sh -s -- --force-confold
    # 可选:将vagrant用户加入docker组
    usermod -aG docker vagrant
  SHELL
end

关键说明:

  • --force-confold参数会跳过配置文件替换的交互提示,防止Vagrant的provision命令因等待输入而退出

最后操作步骤

修改完Vagrantfile后:

  1. 如果虚拟机已经创建过,执行 vagrant provision 重新应用配置
  2. 如果之前的环境有残留问题,直接执行 vagrant destroy && vagrant up 重建干净的虚拟机

内容的提问来源于stack exchange,提问作者S34N

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 08:54:50