本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

ecs-deploy 是一款简化Amazon ECS部署的命令行工具,提供便捷的CLI接口用于执行频繁的复杂操作,支持任务定义管理、服务部署、扩缩容及任务运行等功能。
$ ecs deploy my-cluster my-service --tag 1.2.3
$ ecs deploy my-cluster my-service
$ ecs scale my-cluster my-service 4
$ ecs cron my-cluster my-task my-rule
$ ecs update my-task
项目已发布至PyPI,可通过以下命令安装:
$ pip install ecs-deploy
无需本地Python环境,可直接通过Docker运行ecs-deploy。1.7.1及以上版本已发布至Docker Hub:fabfuel/ecs-deploy
docker run fabfuel/ecs-deploy:1.10.2
master或latest对应最新稳定版develop对应最新开发版通过Docker运行时,需通过命令参数或环境变量提供AWS凭证和区域:
docker run fabfuel/ecs-deploy:1.10.2 ecs deploy my-cluster my-service --region eu-central-1 --access-key-id ABC --secret-access-key ABC
基于AWS Python SDK(boto3),支持多种凭证配置方式(详见boto3文档):
$ aws configure
运行ecs命令时指定:
--access-key-id 和 --secret-access-key:AWS凭证--profile:AWS配置文件重新部署服务(可修改镜像、环境变量或命令)
调整服务任务数实现扩缩容
基于现有任务定义运行一次性任务(可覆盖命令或环境变量)
更新任务定义(创建新版本,不部署运行)
更新任务定义并同步事件规则(定时任务)
无需修改,拉取最新镜像重新部署:
$ ecs deploy my-cluster my-service
更新所有容器镜像标签:
$ ecs deploy my-cluster my-service -t 1.2.3
$ ecs deploy my-cluster my-service --image webserver nginx:1.11.8
$ ecs deploy my-cluster my-service -i webserver nginx:1.9 -i application my-app:1.2.3
指定任务ARN、任务家族+版本或任务家族(默认最新版本):
# ARN方式 $ ecs deploy my-cluster my-service --task arn:aws:ecs:eu-central-1:123456789012:task-definition/my-task:20 # 家族+版本方式 $ ecs deploy my-cluster my-service --task my-task:20 # 家族方式(最新版本) $ ecs deploy my-cluster my-service --task my-task
重要:即使指定任务定义,
ecs-deploy仍会创建新版本任务定义以确保一致性(如镜像拉取),新版本基于指定任务而非当前服务使用的任务。
添加/修改指定容器的环境变量:
$ ecs deploy my-cluster my-service -e webserver SOME_VARIABLE SOME_VALUE
$ ecs deploy my-cluster my-service -e webserver VAR1 VAL1 -e webserver VAR2 VAL2 -e app APP_VAR APP_VAL
$ ecs deploy my-cluster my-service -e webserver SOME_VAR SOME_VAL --exclusive-env
重要:需ECS Agent版本≥1.22.0,否则任务部署失败。
# 参数名方式 $ ecs deploy my-cluster my-service -s webserver SOME_SECRET KEY_OF_SECRET_IN_PARAMETER_STORE # ARN方式 $ ecs deploy my-cluster my-service -s webserver SOME_SECRET arn:aws:ssm:<region>:<account>:parameter/KEY
$ ecs deploy my-cluster my-service -s webserver NEW_SECRET KEY --exclusive-secret
# 简单命令 $ ecs deploy my-cluster my-service --command webserver "nginx" # 带参数命令 $ ecs deploy my-cluster my-service --command webserver "nginx -c /etc/nginx/nginx.conf" # JSON格式(含空格参数) $ ecs deploy my-cluster my-service --command webserver '["sh", "-c", "while true; do echo Time $(date); sleep 1; done;"]'
$ ecs deploy my-cluster my-service -r arn:aws:iam::123456789012:role/MyEcsTaskRole
--cpu <容器名> 0--memory <容器名> 256--memoryreservation <容器名> 256--privileged <容器名> True|False--essential <容器名> True|False--log <容器名> awslogs awslogs-group <日志组名> --log <容器名> awslogs awslogs-region <区域> --log <容器名> awslogs awslogs-stream-prefix <流前缀>
# 格式:--port <容器名> <容器端口> <主机端口> --port webserver 80 8080 # 清除现有端口映射:--exclusive-ports
# 定义卷 --volume data-volume /host/data # 挂载卷到容器 --mount webserver data-volume /container/data # 清除现有挂载:--exclusive-mounts
调整服务任务数:
$ ecs scale my-cluster my-service 4
$ ecs run my-cluster my-task
$ ecs run my-cluster my-task:123
$ ecs run my-cluster my-task:123 -e my-container MY_VAR "my value"
$ ecs run my-cluster my-task -c my-container "python script.py param1 param2"
需指定启动类型、安全组、子网等参数:
$ ecs run my-fargate-cluster my-task --launchtype=FARGATE --securitygroup sg-01234567 --subnet subnet-01234567 --public-ip
通过API密钥和应用ID记录部署,支持两种配置方式:
$ ecs deploy my-cluster my-service --newrelic-apikey ABCDEFG --newrelic-appid 1234567890
$ export NEW_RELIC_API_KEY=ABCDEFG $ export NEW_RELIC_APP_ID=1234567890 $ ecs deploy my-cluster my-service
默认超时300秒,可通过--timeout参数调整(单位:秒),设置为-1则不等待结果:
$ ecs deploy my-cluster my-service --timeout 600
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429