我正在尝试使用AWS CLI从我安装了Docker的映像启动EC2实例,然后为该实例提供--user-data
传入的脚本以从docker中提取映像集线器并运行该图像。我的AWS CLI命令启动实例,但似乎传递给--user-data
的脚本永远不会运行。
CLI命令是:
aws ec2 run-instances --image-id ami-xxxxx --count 1 --instance-type t2.micro --key-name xxxxx --security-groups xxxxxxx --user-data file:///Users/xxxxxx/startlb.sh
startlb.sh
的内容:
#!/bin/bash
docker pull xxxxxx && docker run -p 9000:9000 -p 9090:9090 -d xxxxxxx go run lbserver.go > /home/ec2-user/startup.log
我正在将docker命令的输出重定向到startup.log以查看是否发生任何标准输出。当我登录到实例时,没有创建日志文件,这使我相信user-data
脚本永远不会运行。 docker images
和docker ps
都表明实例上没有图像或容器。
该命令成功启动实例,只是没有拉动并运行docker容器(默认情况下Docker正在实例上运行,因此无需启动它)。在启动实例后,如果我将脚本的内容粘贴到终端并执行它,则拉出容器并运行它,因此脚本似乎没有任何问题。
答案 0 :(得分:1)
事实证明它毕竟是有效的。我没有足够的时间让docker pull下载所有内容。几分钟后检查是否存在日志文件,图像和容器,表明一切都在那里。