
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
在ECS集群的每个实例上部署特定容器。
ECS是Docker的轻量封装,但在生产环境中长期使用会发现其功能不够完善。Kubernetes有DaemonSet概念,即在集群每个节点运行一个或一组容器。在ECS中,传统解决方案是通过userdata使用aws-cli启动任务,但任务失败或停止后无法自动重启,且userdata脚本若前面步骤失败则不会尝试启动任务。ecs-daemonset可解决这些问题。
使用时需创建带distinctInstance放置约束的服务,并添加ECS_DAEMONSET=true的Docker标签。
| 变量 | 描述 | 默认值 |
|---|---|---|
AWS_REGION | ECS集群所在的AWS区域 | us-east-1 |
ECS_CLUSTER_NAME | 要轮询的ECS集群名称 | default |
RESOURCE_CHECK_INTERVAL | 轮询ECS集群的间隔(秒) | 60 |
按需更新:
yaml"EcsDaemonsetIamRole": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ecs-tasks.amazonaws.com" ] }, "Action": [ "sts:AssumeRole" ] } ] }, "Policies": [ { "PolicyName": "ClusterInstancePolicy", "PolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:List*", "ecs:Describe*", "ecs:UpdateService" ], "Resource": "*" } ] } } ] } }, "EcsTaskDefinitionEcsDaemonsetEcsClusterProduction": { "Type": "AWS::ECS::TaskDefinition", "Properties": { "TaskRoleArn": { "Ref": "EcsDaemonsetIamRole" }, "ContainerDefinitions": [ { "Name": "ecs-daemonset-ecs-cluster-production", "Image": "ameir/ecs-daemonset:latest", "Cpu": "64", "Memory": "128", "Environment": [ { "Name": "AWS_REGION", "Value": "us-east-1" }, { "Name": "ECS_CLUSTER_NAME", "Value": { "Ref": "EcsClusterProductionEcsCluster" } } ], "Essential": "true", "LogConfiguration": { "LogDriver": "awslogs", "Options": { "awslogs-group": { "Ref": "EcsClusterProductionCloudwatchLogGroup" }, "awslogs-region": "us-east-1", "awslogs-stream-prefix": "ecs-daemonset" } } } ] } }, "EcsDaemonsetEcsServiceEcsClusterProduction": { "Type": "AWS::ECS::Service", "Properties": { "Cluster": { "Ref": "EcsClusterProductionEcsCluster" }, "TaskDefinition": { "Ref": "EcsTaskDefinitionEcsDaemonsetEcsClusterProduction" }, "DesiredCount": 1 } },
yaml"datadogIamRole": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ecs-tasks.amazonaws.com" ] }, "Action": [ "sts:AssumeRole" ] } ] }, "Policies": [ { "PolicyName": "ClusterInstancePolicy", "PolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:RegisterContainerInstance", "ecs:DeregisterContainerInstance", "ecs:DiscoverPollEndpoint", "ecs:Submit*", "ecs:Poll", "ecs:StartTask", "ecs:StartTelemetrySession" ], "Resource": "*" } ] } } ] } }, "datadogTaskDefinition": { "Type": "AWS::ECS::TaskDefinition", "Properties": { "TaskRoleArn": { "Ref": "datadogIamRole" }, "ContainerDefinitions": [ { "Name": "datadog", "Image": "datadog/docker-dd-agent:latest", "Cpu": 10, "Memory": 512, "Essential": true, "LogConfiguration": { "LogDriver": "awslogs", "Options": { "awslogs-group": { "Ref": "EcsClusterProductionCloudwatchLogGroup" }, "awslogs-region": "us-east-1", "awslogs-stream-prefix": "docker-dd-agent" } }, "MountPoints": [ { "ContainerPath": "/var/run/docker.sock", "SourceVolume": "docker_sock" }, { "ContainerPath": "/host/sys/fs/cgroup", "SourceVolume": "cgroup", "ReadOnly": true }, { "ContainerPath": "/host/proc", "SourceVolume": "proc", "ReadOnly": true } ], "Environment": [ { "Name": "API_KEY", "Value": "xxxxx" }, { "Name": "SD_BACKEND", "Value": "docker" } ], "DockerLabels": { "ECS_DAEMONSET": true } } ], "Volumes": [ { "Host": { "SourcePath": "/var/run/docker.sock" }, "Name": "docker_sock" }, { "Host": { "SourcePath": "/proc/" }, "Name": "proc" }, { "Host": { "SourcePath": "/cgroup/" }, "Name": "cgroup" } ], "Family": "datadog-ecs-cluster-production" } }, "DatadogEcsServiceEcsClusterProduction": { "Type": "AWS::ECS::Service", "Properties": { "Cluster": { "Ref": "EcsClusterProductionEcsCluster" }, "TaskDefinition": { "Ref": "datadogTaskDefinition" }, "DesiredCount": 1, "PlacementConstraints": [ { "Type": "distinctInstance" } ], "DeploymentConfiguration": { "MaximumPercent": 100, "MinimumHealthyPercent": 0 } } },
提交拉取请求或在GitHub上提交问题,我会尽快处理。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务