

# 安装 Amazon ECS 容器代理
<a name="ecs-agent-install"></a>

如果您想向 Amazon ECS 集群注册 Amazon EC2 实例，并且该实例不使用基于经 Amazon ECS 优化的 AMI 的 AMI，您可以使用以下过程手动安装 Amazon ECS 容器代理。为此，您可以从区域性 Amazon S3 存储桶之一或 Amazon Elastic Container Registry Public 下载代理。如果您从区域性 Amazon S3 存储桶之一下载，则可以选择使用 PGP 签名来验证容器代理的有效性。

**注意**  
Amazon ECS 和 Docker 服务的 `systemd` 单元都有一个指令，在启动两个这两项服务之前等待 `cloud-init` 完成。在您的 Amazon EC2 用户数据完成运行之前，`cloud-init` 过程不会被视为已完成。因此，通过 Amazon EC2 用户数据启动 Amazon ECS 或 Docker 可能会导致死锁。要使用 Amazon EC2 用户数据启动容器代理，您可以使用 `systemctl enable --now --no-block ecs.service`。

## 在非 Amazon Linux EC2 实例上安装 Amazon ECS 容器代理
<a name="ecs-agent-install-nonamazonlinux"></a>

要在非 Amazon EC2 实例上安装 Amazon ECS 容器代理，您可以从区域性 Amazon S3 存储桶之一下载代理并安装它。

**注意**  
使用非 Amazon Linux AMI 时，您的 Amazon EC2 实例需要 `cgroupfs` 支持 `cgroup` 驱动程序，以便 Amazon ECS 代理能够支持任务级别的资源限制。有关更多信息，请参阅 [GitHub 上的 Amazon ECS 代理](https://github.com/aws/amazon-ecs-agent)。

下面按区域列出了每个系统架构最新的 Amazon ECS 容器代理文件，以供参考。


| 区域 |  区域名称 | Amazon ECS init deb 文件 | Amazon ECS init rpm 文件 | 
| --- | --- | --- | --- | 
| us-east-2 | 美国东部（俄亥俄州） |  [Amazon ECS init amd64](https://s3.us-east-2.amazonaws.com/amazon-ecs-agent-us-east-2/amazon-ecs-init-latest.amd64.deb)（amd64） [Amazon ECS init arm64](https://s3.us-east-2.amazonaws.com/amazon-ecs-agent-us-east-2/amazon-ecs-init-latest.arm64.deb)（arm64）  |  [Amazon ECS init x86\$164](https://s3.us-east-2.amazonaws.com/amazon-ecs-agent-us-east-2/amazon-ecs-init-latest.x86_64.rpm)（x86\$164） [Amazon ECS init aarch64](https://s3.us-east-2.amazonaws.com/amazon-ecs-agent-us-east-2/amazon-ecs-init-latest.aarch64.rpm)（aarch64）  | 
| us-east-1 | 美国东部（弗吉尼亚州北部） |  [Amazon ECS init amd64](https://s3.us-east-1.amazonaws.com/amazon-ecs-agent-us-east-1/amazon-ecs-init-latest.amd64.deb)（amd64） [Amazon ECS init arm64](https://s3.us-east-1.amazonaws.com/amazon-ecs-agent-us-east-1/amazon-ecs-init-latest.arm64.deb)（arm64）  |  [Amazon ECS init x86\$164](https://s3.us-east-1.amazonaws.com/amazon-ecs-agent-us-east-1/amazon-ecs-init-latest.x86_64.rpm)（x86\$164） [Amazon ECS init aarch64](https://s3.us-east-1.amazonaws.com/amazon-ecs-agent-us-east-1/amazon-ecs-init-latest.aarch64.rpm)（aarch64）  | 
| us-west-1 | 美国西部（北加利福尼亚） |  [Amazon ECS init amd64](https://s3.us-west-1.amazonaws.com/amazon-ecs-agent-us-west-1/amazon-ecs-init-latest.amd64.deb)（amd64） [Amazon ECS init arm64](https://s3.us-west-1.amazonaws.com/amazon-ecs-agent-us-west-1/amazon-ecs-init-latest.arm64.deb)（arm64）  |  [Amazon ECS init x86\$164](https://s3.us-west-1.amazonaws.com/amazon-ecs-agent-us-west-1/amazon-ecs-init-latest.x86_64.rpm)（x86\$164） [Amazon ECS init aarch64](https://s3.us-west-1.amazonaws.com/amazon-ecs-agent-us-west-1/amazon-ecs-init-latest.aarch64.rpm)（aarch64）  | 
| us-west-2 | 美国西部（俄勒冈州） |  [Amazon ECS init amd64](https://s3.us-west-2.amazonaws.com/amazon-ecs-agent-us-west-2/amazon-ecs-init-latest.amd64.deb)（amd64） [Amazon ECS init arm64](https://s3.us-west-2.amazonaws.com/amazon-ecs-agent-us-west-2/amazon-ecs-init-latest.arm64.deb)（arm64）  |  [Amazon ECS init x86\$164](https://s3.us-west-2.amazonaws.com/amazon-ecs-agent-us-west-2/amazon-ecs-init-latest.x86_64.rpm)（x86\$164） [Amazon ECS init aarch64](https://s3.us-west-2.amazonaws.com/amazon-ecs-agent-us-west-2/amazon-ecs-init-latest.aarch64.rpm)（aarch64）  | 
| ap-east-1 | 亚太地区（香港） |  [Amazon ECS init amd64](https://s3.ap-east-1.amazonaws.com/amazon-ecs-agent-ap-east-1/amazon-ecs-init-latest.amd64.deb)（amd64） [Amazon ECS init arm64](https://s3.ap-east-1.amazonaws.com/amazon-ecs-agent-ap-east-1/amazon-ecs-init-latest.arm64.deb)（arm64）  |  [Amazon ECS init x86\$164](https://s3.ap-east-1.amazonaws.com/amazon-ecs-agent-ap-east-1/amazon-ecs-init-latest.x86_64.rpm)（x86\$164） [Amazon ECS init aarch64](https://s3.ap-east-1.amazonaws.com/amazon-ecs-agent-ap-east-1/amazon-ecs-init-latest.aarch64.rpm)（aarch64）  | 
| ap-northeast-1 | 亚太地区（东京） |  [Amazon ECS init amd64](https://s3.ap-northeast-1.amazonaws.com/amazon-ecs-agent-ap-northeast-1/amazon-ecs-init-latest.amd64.deb)（amd64） [Amazon ECS init arm64](https://s3.ap-northeast-1.amazonaws.com/amazon-ecs-agent-ap-northeast-1/amazon-ecs-init-latest.arm64.deb)（arm64）  |  [Amazon ECS init x86\$164](https://s3.ap-northeast-1.amazonaws.com/amazon-ecs-agent-ap-northeast-1/amazon-ecs-init-latest.x86_64.rpm)（x86\$164） [Amazon ECS init aarch64](https://s3.ap-northeast-1.amazonaws.com/amazon-ecs-agent-ap-northeast-1/amazon-ecs-init-latest.aarch64.rpm)（aarch64）  | 
| ap-northeast-2 | 亚太地区（首尔） |  [Amazon ECS init amd64](https://s3.ap-northeast-2.amazonaws.com/amazon-ecs-agent-ap-northeast-2/amazon-ecs-init-latest.amd64.deb)（amd64） [Amazon ECS init arm64](https://s3.ap-northeast-2.amazonaws.com/amazon-ecs-agent-ap-northeast-2/amazon-ecs-init-latest.arm64.deb)（arm64）  |  [Amazon ECS init x86\$164](https://s3.ap-northeast-2.amazonaws.com/amazon-ecs-agent-ap-northeast-2/amazon-ecs-init-latest.x86_64.rpm)（x86\$164） [Amazon ECS init aarch64](https://s3.ap-northeast-2.amazonaws.com/amazon-ecs-agent-ap-northeast-2/amazon-ecs-init-latest.aarch64.rpm)（aarch64）  | 
| ap-south-1 | 亚太地区（孟买） |  [Amazon ECS init amd64](https://s3.ap-south-1.amazonaws.com/amazon-ecs-agent-ap-south-1/amazon-ecs-init-latest.amd64.deb)（amd64） [Amazon ECS init arm64](https://s3.ap-south-1.amazonaws.com/amazon-ecs-agent-ap-south-1/amazon-ecs-init-latest.arm64.deb)（arm64）  |  [Amazon ECS init x86\$164](https://s3.ap-south-1.amazonaws.com/amazon-ecs-agent-ap-south-1/amazon-ecs-init-latest.x86_64.rpm)（x86\$164） [Amazon ECS init aarch64](https://s3.ap-south-1.amazonaws.com/amazon-ecs-agent-ap-south-1/amazon-ecs-init-latest.aarch64.rpm)（aarch64）  | 
| ap-southeast-1 | 亚太地区（新加坡） |  [Amazon ECS init amd64](https://s3.ap-southeast-1.amazonaws.com/amazon-ecs-agent-ap-southeast-1/amazon-ecs-init-latest.amd64.deb)（amd64） [Amazon ECS init arm64](https://s3.ap-southeast-1.amazonaws.com/amazon-ecs-agent-ap-southeast-1/amazon-ecs-init-latest.arm64.deb)（arm64）  |  [Amazon ECS init x86\$164](https://s3.ap-southeast-1.amazonaws.com/amazon-ecs-agent-ap-southeast-1/amazon-ecs-init-latest.x86_64.rpm)（x86\$164） [Amazon ECS init aarch64](https://s3.ap-southeast-1.amazonaws.com/amazon-ecs-agent-ap-southeast-1/amazon-ecs-init-latest.aarch64.rpm)（aarch64）  | 
| ap-southeast-2 | 亚太地区（悉尼） |  [Amazon ECS init amd64](https://s3.ap-southeast-2.amazonaws.com/amazon-ecs-agent-ap-southeast-2/amazon-ecs-init-latest.amd64.deb)（amd64） [Amazon ECS init arm64](https://s3.ap-southeast-2.amazonaws.com/amazon-ecs-agent-ap-southeast-2/amazon-ecs-init-latest.arm64.deb)（arm64）  |  [Amazon ECS init x86\$164](https://s3.ap-southeast-2.amazonaws.com/amazon-ecs-agent-ap-southeast-2/amazon-ecs-init-latest.x86_64.rpm)（x86\$164） [Amazon ECS init aarch64](https://s3.ap-southeast-2.amazonaws.com/amazon-ecs-agent-ap-southeast-2/amazon-ecs-init-latest.aarch64.rpm)（aarch64）  | 
| ca-central-1 | 加拿大（中部） |  [Amazon ECS init amd64](https://s3.ca-central-1.amazonaws.com/amazon-ecs-agent-ca-central-1/amazon-ecs-init-latest.amd64.deb)（amd64） [Amazon ECS init arm64](https://s3.ca-central-1.amazonaws.com/amazon-ecs-agent-ca-central-1/amazon-ecs-init-latest.arm64.deb)（arm64）  |  [Amazon ECS init x86\$164](https://s3.ca-central-1.amazonaws.com/amazon-ecs-agent-ca-central-1/amazon-ecs-init-latest.x86_64.rpm)（x86\$164） [Amazon ECS init aarch64](https://s3.ca-central-1.amazonaws.com/amazon-ecs-agent-ca-central-1/amazon-ecs-init-latest.aarch64.rpm)（aarch64）  | 
| eu-central-1 | 欧洲地区（法兰克福） |  [Amazon ECS init amd64](https://s3.eu-central-1.amazonaws.com/amazon-ecs-agent-eu-central-1/amazon-ecs-init-latest.amd64.deb)（amd64） [Amazon ECS init arm64](https://s3.eu-central-1.amazonaws.com/amazon-ecs-agent-eu-central-1/amazon-ecs-init-latest.arm64.deb)（arm64）  |  [Amazon ECS init x86\$164](https://s3.eu-central-1.amazonaws.com/amazon-ecs-agent-eu-central-1/amazon-ecs-init-latest.x86_64.rpm)（x86\$164） [Amazon ECS init aarch64](https://s3.eu-central-1.amazonaws.com/amazon-ecs-agent-eu-central-1/amazon-ecs-init-latest.aarch64.rpm)（aarch64）  | 
| eu-west-1 | 欧洲地区（爱尔兰） |  [Amazon ECS init amd64](https://s3.eu-west-1.amazonaws.com/amazon-ecs-agent-eu-west-1/amazon-ecs-init-latest.amd64.deb)（amd64） [Amazon ECS init arm64](https://s3.eu-west-1.amazonaws.com/amazon-ecs-agent-eu-west-1/amazon-ecs-init-latest.arm64.deb)（arm64）  |  [Amazon ECS init x86\$164](https://s3.eu-west-1.amazonaws.com/amazon-ecs-agent-eu-west-1/amazon-ecs-init-latest.x86_64.rpm)（x86\$164） [Amazon ECS init aarch64](https://s3.eu-west-1.amazonaws.com/amazon-ecs-agent-eu-west-1/amazon-ecs-init-latest.aarch64.rpm)（aarch64）  | 
| eu-west-2 | 欧洲地区（伦敦） |  [Amazon ECS init amd64](https://s3.eu-west-2.amazonaws.com/amazon-ecs-agent-eu-west-2/amazon-ecs-init-latest.amd64.deb)（amd64） [Amazon ECS init arm64](https://s3.eu-west-2.amazonaws.com/amazon-ecs-agent-eu-west-2/amazon-ecs-init-latest.arm64.deb)（arm64）  |  [Amazon ECS init x86\$164](https://s3.eu-west-2.amazonaws.com/amazon-ecs-agent-eu-west-2/amazon-ecs-init-latest.x86_64.rpm)（x86\$164） [Amazon ECS init aarch64](https://s3.eu-west-2.amazonaws.com/amazon-ecs-agent-eu-west-2/amazon-ecs-init-latest.aarch64.rpm)（aarch64）  | 
| eu-west-3 | 欧洲地区（巴黎） |  [Amazon ECS init amd64](https://s3.eu-west-3.amazonaws.com/amazon-ecs-agent-eu-west-3/amazon-ecs-init-latest.amd64.deb)（amd64） [Amazon ECS init arm64](https://s3.eu-west-3.amazonaws.com/amazon-ecs-agent-eu-west-3/amazon-ecs-init-latest.arm64.deb)（arm64）  |  [Amazon ECS init x86\$164](https://s3.eu-west-3.amazonaws.com/amazon-ecs-agent-eu-west-3/amazon-ecs-init-latest.x86_64.rpm)（x86\$164） [Amazon ECS init aarch64](https://s3.eu-west-3.amazonaws.com/amazon-ecs-agent-eu-west-3/amazon-ecs-init-latest.aarch64.rpm)（aarch64）  | 
| sa-east-1 | 南美洲（圣保罗） |  [Amazon ECS init amd64](https://s3.sa-east-1.amazonaws.com/amazon-ecs-agent-sa-east-1/amazon-ecs-init-latest.amd64.deb)（amd64） [Amazon ECS init arm64](https://s3.sa-east-1.amazonaws.com/amazon-ecs-agent-sa-east-1/amazon-ecs-init-latest.arm64.deb)（arm64）  |  [Amazon ECS init x86\$164](https://s3.sa-east-1.amazonaws.com/amazon-ecs-agent-sa-east-1/amazon-ecs-init-latest.x86_64.rpm) [Amazon ECS init aarch64](https://s3.sa-east-1.amazonaws.com/amazon-ecs-agent-sa-east-1/amazon-ecs-init-latest.aarch64.rpm)（aarch64）  | 
| us-gov-east-1 | AWS GovCloud（美国东部） |  [Amazon ECS init amd64](https://s3.us-gov-east-1.amazonaws.com/amazon-ecs-agent-us-gov-east-1/amazon-ecs-init-latest.amd64.deb)（amd64） [Amazon ECS init arm64](https://s3.us-gov-east-1.amazonaws.com/amazon-ecs-agent-us-gov-east-1/amazon-ecs-init-latest.arm64.deb)（arm64）  |  [Amazon ECS init x86\$164](https://s3.us-gov-east-1.amazonaws.com/amazon-ecs-agent-us-gov-east-1/amazon-ecs-init-latest.x86_64.rpm)（x86\$164） [Amazon ECS init aarch64](https://s3.us-gov-east-1.amazonaws.com/amazon-ecs-agent-us-gov-east-1/amazon-ecs-init-latest.aarch64.rpm)（aarch64）  | 
| us-gov-west-1 | AWS GovCloud（美国西部） |  [Amazon ECS init amd64](https://s3.us-gov-west-1.amazonaws.com/amazon-ecs-agent-us-gov-west-1/amazon-ecs-init-latest.amd64.deb)（amd64） [Amazon ECS init arm64](https://s3.us-gov-west-1.amazonaws.com/amazon-ecs-agent-us-gov-west-1/amazon-ecs-init-latest.arm64.deb)（arm64）  |  [Amazon ECS init x86\$164](https://s3.us-gov-west-1.amazonaws.com/amazon-ecs-agent-us-gov-west-1/amazon-ecs-init-latest.x86_64.rpm)（x86\$164） [Amazon ECS init aarch64](https://s3.us-gov-west-1.amazonaws.com/amazon-ecs-agent-us-gov-west-1/amazon-ecs-init-latest.aarch64.rpm)（aarch64）  | 

**使用非 Amazon Linux AMI 在 Amazon EC2 实例上安装 Amazon ECS 容器代理**

1. 启动一个 Amazon EC2 实例，该实例具有允许访问 Amazon ECS 的 IAM 角色。有关更多信息，请参阅 [Amazon ECS 容器实例 IAM 角色](instance_IAM_role.md)。

1. 连接到您的实例。

1. 在实例上安装最新版本的 Docker。

1. 检查 Docker 版本以验证系统是否满足最低版本要求。有关 Docker 支持的更多信息，请参阅 [Amazon ECS EC2 容器实例](ecs-agent-versions.md)。

   ```
   docker --version
   ```

1. 下载适用于您的操作系统和系统架构的相应的 Amazon ECS 代理文件并进行安装。

   对于 `deb` 架构：

   ```
   ubuntu:~$ curl -O https://s3.us-west-2.amazonaws.com/amazon-ecs-agent-us-west-2/amazon-ecs-init-latest.amd64.deb
   ubuntu:~$ sudo dpkg -i amazon-ecs-init-latest.amd64.deb
   ```

   对于 `rpm` 架构：

   ```
   fedora:~$ curl -O https://s3.us-west-2.amazonaws.com/amazon-ecs-agent-us-west-2/amazon-ecs-init-latest.x86_64.rpm
   fedora:~$ sudo yum localinstall -y amazon-ecs-init-latest.x86_64.rpm
   ```

1. 编辑 `/lib/systemd/system/ecs.service` 文件并在 `[Unit]` 部分末尾添加以下行。

   ```
   After=cloud-final.service
   ```

1. （可选）向 `default` 集群以外的集群注册实例，编辑 `/etc/ecs/ecs.config` 文件并添加以下内容。下面的示例指定了 `MyCluster` 集群。

   ```
   ECS_CLUSTER=MyCluster
   ```

   有关这些和其他代理运行时选项的更多信息，请参阅 [Amazon ECS 容器代理配置](ecs-agent-config.md)。
**注意**  
您可以选择将代理环境变量存储在 Amazon S3 中（可在启动时使用 Amazon EC2 用户数据将其下载到容器实例）。建议对敏感信息（如私有存储库的身份验证凭证）采用此方法。有关更多信息，请参阅[将 Amazon ECS 容器实例配置存储在 Amazon S3 中](ecs-config-s3.md)和[在 Amazon ECS 中使用非 AWS 容器映像](private-auth.md)。

1. 启动 `ecs` 服务。

   ```
   ubuntu:~$ sudo systemctl start ecs
   ```

## 使用主机网络模式运行 Amazon ECS 代理
<a name="container_agent_host"></a>

在运行 Amazon ECS 容器代理时，`ecs-init` 将使用 `host` 网络模式创建容器代理容器。这是容器代理容器的唯一受支持的网络模式。

这使您能够阻止对容器代理启动的容器的 [Amazon EC2 实例元数据服务端点](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)（`http://169.254.169.254`）的访问。这将确保容器无法访问容器实例配置文件中的 IAM 角色凭证并强制任务仅使用 IAM 任务角色凭证。有关更多信息，请参阅 [Amazon ECS 任务 IAM 角色](task-iam-roles.md)。

这还可以让容器代理不会争用 `docker0` 桥接上的连接和网络流量。