Quiero configurar un proxy HTTP para Docker y el agente de contenedores de Amazon Elastic Container Service (Amazon ECS) en Amazon Linux 2.
Descripción corta
Haga lo siguiente:
- Guarde la dirección IP y el puerto del servidor proxy.
- Configure un proxy HTTP para el daemon de Docker.
- Configure un proxy HTTP para el agente de contenedores de Amazon ECS.
- Configure un proxy HTTP para ecs-init. Para más información, consulte amazon-ecs-init en el sitio web de GitHub.
Nota: También puede usar los datos de usuario de Amazon Elastic Compute Cloud (Amazon EC2) que tienen un script de datos de usuario para configurar las variables de entorno durante el inicio. Para ver un script de datos de usuario que funcione en todas las versiones de Linux, consulte Uso de un proxy HTTP para instancias de contenedor de Linux de Amazon ECS.
Si usa Amazon Linux 2 o Amazon Linux 2023, consulte ¿Cómo configuro un proxy HTTP para Docker y el agente de contenedores de Amazon ECS en Amazon Linux 2 o Amazon Linux 2023?
Nota: La imagen de máquina de Amazon (AMI) de Amazon Linux 1 llegó al final de su vida útil. Se recomienda migrar a las AMI de Amazon Linux 2 o Amazon Linux 2023. Para más información, consulte Preguntas frecuentes sobre las AMI de Amazon Linux.
Resolución
Almacenamiento de la dirección IP y el puerto del servidor proxy
Siga estos pasos:
- Use SSH para conectarse a la instancia de Amazon EC2.
- Como usuario raíz, anote la dirección IP y el puerto del servidor proxy para usarlos más adelante en las variables de entorno:
export PROXY_SERVER_IP=x.x.x.xexport PROXY_PORT=1234
Configuración de un proxy HTTP para el daemon de Docker
Siga estos pasos:
-
Ejecute los siguientes comandos con permisos de sudo:
cat <<EOF >> /etc/sysconfig/docker
export HTTP_PROXY=http://$PROXY_SERVER_IP:$PROXY_PORT
export HTTPS_PROXY=https://$PROXY_SERVER_IP:$PROXY_PORT
export NO_PROXY=169.254.169.254,169.254.170.2
EOF
Nota: HTTP_PROXY es la dirección de socket (IPaddress:Port) del proxy HTTP que se utiliza para conectar el agente de contenedor de Amazon ECS a Internet.
Si se establece la variable HTTP_PROXY, debe establecer la variable NO_PROXY en 169.254.169.254,169.254.170.2. Esta configuración filtra los metadatos de las instancias de Amazon EC2, los roles de AWS Identity and Access Management (IAM) para las tareas y el tráfico de daemon de Docker desde el proxy.
-
Para reiniciar Docker, ejecute el siguiente comando:
service docker restart
Nota: El comando anterior detiene todos los contenedores en ejecución. Por ejemplo, detiene ecs-agent en la instancia de contenedor.
-
Para comprobar la configuración del proxy HTTP de Docker, ejecute el siguiente comando:
docker info | grep -i proxy
Nota: El resultado del comando muestra el proxy HTTP y el proxy HTTPS.
Configuración de un proxy HTTP para el agente de contenedores de Amazon ECS
Siga estos pasos:
-
En el archivo /etc/ecs/ecs.config, añada los parámetros de configuración del agente HTTP_PROXY y NO_PROXY.
Ejemplo:
cat <<EOF >> /etc/ecs/ecs.config
ECS_CLUSTER=your-cluster-name
HTTP_PROXY=http://$PROXY_SERVER_IP:$PROXY_PORT
NO_PROXY=169.254.169.254,169.254.170.2,/var/run/docker.sock
EOF
-
Para aplicar las configuraciones del proxy HTTP a ecs-agent, ejecute el siguiente comando:
sudo start ecs
Nota: Si utiliza una AMI optimizada para Amazon ECS, el agente de contenedores de Amazon ECS se ejecuta a través de ecs-init de forma predeterminada.
-
Para comprobar la configuración del proxy HTTP para Docker y el agente de contenedores de Amazon ECS, ejecute el siguiente comando:
docker inspect ecs-agent | grep -i proxy
Nota: La configuración del proxy aparece en la salida del comando.
Configuración de un proxy HTTP para ecs-init
Ejecute los siguientes comandos con permisos de sudo:
cat <<EOF > /etc/init/ecs.override
env HTTP_PROXY=$PROXY_SERVER_IP:$PROXY_PORT
env NO_PROXY=169.254.169.254,169.254.170.2,/var/run/docker.sock
EOF
Nota: La configuración de Docker y del agente de contenedores de Amazon ECS solo afecta a la instancia actual. Para actualizar todas las instancias de un clúster, cree una configuración de inicio con los datos de usuario y, a continuación, use un grupo de escalamiento automático para iniciar nuevas instancias.
Información relacionada
Actualización del agente de contenedores de Amazon ECS
Arranque de instancias de contenedor para la transferencia de datos