docker-compose启动amazon/aws-cli镜像运行1秒后自动停止问题求助
aws-cli容器快速停止问题分析
根因说明
amazon/aws-cli官方镜像的默认启动入口为aws命令,该工具属于单次执行的命令行程序,没有后台常驻进程,执行完成后主进程退出,容器也会随之停止。
你配置的stdin_open: true和tty: true仅对应docker run的-i、-t参数,但docker-compose默认启动时不会自动attach到容器交互终端,因此没有持续的输入保持进程运行,容器启动后输出完aws命令的帮助信息就会直接退出,不属于崩溃类异常。
验证方法
- 执行
docker ps -a找到已停止的aws-cli容器ID - 执行
docker logs <容器ID>查看运行日志,可看到aws命令的帮助输出,确认是命令执行完成后的正常退出
修复方案
单次执行aws操作场景
如果仅需要容器执行指定aws任务后退出,在docker-compose配置中添加command字段传入要执行的aws命令即可,示例:
services: web: # 其余原有配置保持不变 command: s3 ls s3://你的存储桶名
容器常驻后台场景
如果需要容器保持运行,方便随时进入执行aws操作,修改command为常驻进程即可:
services: web: # 其余原有配置保持不变 command: /bin/sh
容器启动后可通过docker exec -it <对应容器名称> /bin/sh进入容器内部执行aws相关命令。
额外提示
你当前配置的8080:8080端口映射无实际作用,aws-cli镜像本身不会监听任何端口,可直接删除该配置项。
内容的提问来源于stack exchange,提问作者Hamdy
相关产品推荐
相关产品推荐

