为 Amazon ECS Linux 容器实例使用 HTTP 代理
您可以将 Amazon ECS 容器实例配置为对 Amazon ECS 容器代理和 Docker 守护程序使用 HTTP 代理。如果您的容器实例无法通过 Amazon VPC互联网网关、NAT 网关或实例访问外部网络,则这非常有用。
要将 Amazon ECS Linux 容器实例配置为使用 HTTP 代理,请在启动时在相关文件中设置以下变量(利用 Amazon EC2 用户数据)。您也可以手动编辑配置文件,然后重新启动代理。
/etc/ecs/ecs.config
(Amazon Linux 2 和 AmazonLinux AMI)-
HTTP_PROXY=
10.0.0.131
:3128
-
将此值设置为某个 HTTP 代理的主机名(或 IP 地址)和端口号,供 Amazon ECS 代理用来连接到互联网。例如,在容器实例无法通过 Amazon VPC互联网网关、NAT 网关或实例访问外部网络时。
NO_PROXY=169.254.169.254,169.254.170.2,/var/run/docker.sock
-
将此值设置为
169.254.169.254,169.254.170.2,/var/run/docker.sock
可筛选 EC2 实例元数据、任务的 IAM 角色以及来自代理的 Docker 守护程序流量。
/etc/systemd/system/ecs.service.d/http-proxy.conf
(仅 Amazon Linux 2)-
Environment="HTTP_PROXY=
10.0.0.131
:3128
/"-
将此值设置为某个 HTTP 代理的主机名 (或 IP 地址) 和端口号,供
ecs-init
代理用来连接到互联网。例如,在容器实例无法通过 Amazon VPC互联网网关、NAT 网关或实例访问外部网络时。 Environment="NO_PROXY=169.254.169.254,169.254.170.2,/var/run/docker.sock"
-
将此值设置为
169.254.169.254,169.254.170.2,/var/run/docker.sock
可筛选 EC2 实例元数据、任务的 IAM 角色以及来自代理的 Docker 守护程序流量。
/etc/init/ecs.override
(仅限 Amazon Linux AMI)-
env HTTP_PROXY=
10.0.0.131
:3128
-
将此值设置为某个 HTTP 代理的主机名 (或 IP 地址) 和端口号,供
ecs-init
代理用来连接到互联网。例如,在容器实例无法通过 Amazon VPC互联网网关、NAT 网关或实例访问外部网络时。 env NO_PROXY=169.254.169.254,169.254.170.2,/var/run/docker.sock
-
将此值设置为
169.254.169.254,169.254.170.2,/var/run/docker.sock
可筛选 EC2 实例元数据、任务的 IAM 角色以及来自代理的 Docker 守护程序流量。
/etc/systemd/system/docker.service.d/http-proxy.conf
(仅 Amazon Linux 2)-
Environment="HTTP_PROXY=http://
10.0.0.131
:3128
"-
将此值设置为某个 HTTP 代理的主机名 (或 IP 地址) 和端口号,供 Docker 守护程序用来连接到互联网。例如,在容器实例无法通过 Amazon VPC互联网网关、NAT 网关或实例访问外部网络时。
Environment="NO_PROXY=169.254.169.254,169.254.170.2"
-
将此值设置为
169.254.169.254,169.254.170.2
可筛选来自代理的 EC2 实例元数据。
/etc/sysconfig/docker
(仅限 Amazon Linux AMI 和 Amazon Linux 2)-
export HTTP_PROXY=http://
10.0.0.131
:3128
-
将此值设置为某个 HTTP 代理的主机名 (或 IP 地址) 和端口号,供 Docker 守护程序用来连接到互联网。例如,在容器实例无法通过 Amazon VPC互联网网关、NAT 网关或实例访问外部网络时。
export NO_PROXY=169.254.169.254,169.254.170.2
-
将此值设置为
169.254.169.254,169.254.170.2
可筛选来自代理的 EC2 实例元数据。
在以上文件中设置这些环境变量仅影响 Amazon ECS 容器代理、ecs-init
和 Docker 守护程序。它们不配置任何其他服务(如 yum)使用代理。
有关如何配置代理的信息,请参阅如何在 Amazon Linux 2 或 AL2023 中为 Docker 和 Amazon ECS 容器代理设置 HTTP 代理?