CloudFormation模板UserData中执行docker pull Docker Hub镜像不生效问题
问题根因
你的脚本执行中断不是拉取Docker Hub需要额外配置,问题出在dockerd命令的执行逻辑:直接运行dockerd会以前台阻塞模式启动Docker守护进程,命令会一直挂在当前会话不返回,所以后续的docker pull指令永远不会被执行。
你手动登录后能正常拉取镜像,也验证了你的VPC、安全组出网规则、公网路由配置都是正常的,不需要额外针对Docker Hub做特殊配置。
修复方案
修改UserData脚本,用系统服务管理的方式启动Docker,避免前台阻塞:
UserData: 'Fn::Base64': | #!/bin/bash yum -y install docker # 后台启动Docker服务 systemctl start docker # 可选:配置Docker开机自启 systemctl enable docker # 等待Docker守护进程完全就绪后再执行镜像拉取 until docker info > /dev/null 2>&1; do sleep 1 done docker pull apache/superset
调试参考
如果后续遇到UserData执行异常,可以登录EC2后查看日志文件/var/log/cloud-init-output.log,可以看到脚本执行的完整输出和报错信息。
内容的提问来源于stack exchange,提问作者Aseem
相关产品推荐
相关产品推荐

