Je souhaite configurer un proxy HTTP pour Docker et l'agent de conteneur Amazon Elastic Container Service (Amazon ECS) dans Amazon Linux.
Brève description
Procédez comme suit :
- Stockez l'adresse IP et le port du serveur proxy.
- Configurez un proxy HTTP pour le démon Docker.
- Configurez un proxy HTTP pour l'agent de conteneur Amazon ECS.
- Configurez un proxy HTTP pour ecs-init. Pour en savoir plus, consultez la page amazon-ecs-init sur le site Web de GitHub.
Remarque : Vous pouvez également utiliser les données utilisateur Amazon Elastic Compute Cloud (Amazon EC2) qui comportent un script de données utilisateur pour définir vos variables d'environnement lors du lancement. Pour un script de données utilisateur qui fonctionne sur toutes les versions de Linux, consultez la section Utilisation d'un proxy HTTP pour les instances de conteneur Amazon ECS Linux.
Si vous utilisez Amazon Linux 2 ou Amazon Linux 2023, consultez la section Comment puis-je configurer un proxy HTTP pour Docker et l'agent de conteneur Amazon ECS dans Amazon Linux 2 ou Amazon Linux 2023 ?
Remarque : Amazon Linux 1 Amazon Machine Image (AMI) a atteint sa fin de vie. Il est recommandé de migrer vers les AMI Amazon Linux 2 ou Amazon Linux 2023. Pour plus d'informations, consultez les FAQ sur les AMI Amazon Linux.
Résolution
Stocker l'adresse IP et le port du serveur proxy
Procédez comme suit :
- Utilisez SSH pour vous connecter à l'instance Amazon EC2.
- En tant qu'utilisateur racine, notez l'adresse IP et le port du serveur proxy à utiliser ultérieurement dans les variables d'environnement :
export PROXY_SERVER_IP=x.x.x.xexport PROXY_PORT=1234
Configurer un proxy HTTP pour le démon Docker
Procédez comme suit :
-
Exécutez les commandes suivantes avec les autorisations 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
Remarque : HTTP_PROXY est l'adresse de socket (IPaddress:Port) du proxy HTTP utilisé pour connecter l'agent de conteneur Amazon ECS à Internet.
Si la variable HTTP_PROXY est définie, vous devez définir la variable NO_PROXY sur 169.254.169.254,169.254.170.2. Ce paramètre filtre les métadonnées d'instance Amazon EC2, les rôles AWS Identity and Access Management (IAM) pour les tâches et le trafic du démon Docker provenant du proxy.
-
Pour redémarrer Docker, exécutez la commande suivante :
service docker restart
Remarque : La commande précédente arrête tous les conteneurs en cours d'exécution. Par exemple, elle arrête ecs-agent sur l'instance de conteneur.
-
Pour vérifier les paramètres du proxy HTTP pour Docker, exécutez la commande suivante :
docker info | grep -i proxy
Remarque : La sortie de commande affiche le proxy HTTP et le proxy HTTPS.
Configurer un proxy HTTP pour l'agent de conteneur Amazon ECS
Procédez comme suit :
-
Dans votre fichier /etc/ecs/ecs.config, ajoutez les paramètres de configuration des agents HTTP_PROXY et NO_PROXY.
Exemple :
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
-
Pour appliquer les configurations du proxy HTTP à ecs-agent, exécutez la commande suivante :
sudo start ecs
Remarque : Si vous utilisez une AMI optimisée pour Amazon ECS, l'agent de conteneur Amazon ECS s'exécute par défaut via ecs-init.
-
Pour vérifier les paramètres du proxy HTTP pour Docker et l'agent de conteneur Amazon ECS, exécutez la commande suivante :
docker inspect ecs-agent | grep -i proxy
Remarque : Les paramètres de proxy apparaissent dans la sortie de commande.
Configurer un proxy HTTP pour ecs-init
Exécutez les commandes suivantes avec les autorisations 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
Remarque : La configuration de Docker et de l'agent de conteneur Amazon ECS affecte uniquement l'instance actuelle. Pour mettre à jour toutes les instances d'un cluster, créez une configuration de lancement avec les données utilisateur et utilisez un groupe Auto Scaling pour lancer de nouvelles instances.
Informations connexes
Mise à jour de l'agent de conteneur Amazon ECS
Amorçage d'instances de conteneur pour transmettre des données