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

EC2用户数据中通过Yum安装Docker失败,该如何解决?

解决EC2用户数据中Docker未安装的问题

1. 先查执行日志找问题

登录EC2实例后,直接查看用户数据的执行日志,就能定位脚本哪一步出了问题:

cat /var/log/cloud-init-output.log

日志会显示每一步的执行结果,比如是否存在找不到docker包、权限报错等信息。

2. 修复脚本的常见问题

区分EC2实例的系统版本

  • 如果是Amazon Linux 2:
    先更新yum缓存再安装,避免仓库找不到包的问题,脚本调整为:
    #!/bin/bash
    sudo yum update -y
    sudo yum install -y docker
    sudo service docker start
    sudo usermod -aG docker ec2-user  # 可选,后续使用docker无需加sudo
    sudo docker pull nginx
    sudo docker run -d -p 80:80 nginx
    
  • 如果是Amazon Linux 2023:
    系统用dnf替代了yum,docker启动命令也有变化,脚本调整为:
    #!/bin/bash
    sudo dnf update -y
    sudo dnf install -y docker
    sudo systemctl start docker
    sudo systemctl enable docker  # 设置开机自动启动
    sudo usermod -aG docker ec2-user
    sudo docker pull nginx
    sudo docker run -d -p 80:80 nginx
    

必须添加脚本开头声明

用户数据的脚本开头一定要加#!/bin/bash,否则系统可能无法识别执行解释器,导致脚本无法正常运行。

3. 手动排查仓库问题

如果日志提示No package docker available,说明当前仓库没有docker包:

  • 针对Amazon Linux 2,先安装扩展仓库工具,再启用docker仓库:
    sudo yum install -y amazon-linux-extras
    sudo amazon-linux-extras enable docker
    sudo yum install -y docker
    

4. 重启实例重新测试

修改好用户数据后,重启EC2实例让用户数据重新执行。登录后输入docker --version,即可确认Docker是否安装成功。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 20:45:41