Saltar al contenido

¿Cómo configuro un proxy HTTP para Docker y el agente de contenedores de Amazon ECS en Amazon Linux?

4 minutos de lectura
0

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:

  1. Use SSH para conectarse a la instancia de Amazon EC2.
  2. 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:

  1. 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.

  2. 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.

  3. 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:

  1. 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
  2. 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.

  3. 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