[LINUX] Docker sous environnement proxy

Oncle Docker.

Cette fois ** "Il s'avère que l'environnement de production du client ne peut accéder à Internet que via un proxy !!!" ** Un mémo pour éviter de se précipiter dans une telle situation.

Installer Docker

En supposant Debian / Ubuntu.

Puisqu'il se trouve dans un environnement proxy, je pense que ce qui suit ne passera pas normalement, mais même si vous définissez la variable d'environnement http_proxy etc. avec ~ / .bashrc, si vous faites sudo, la variable d'environnement ne sera pas héritée, donc elle ne passera pas telle quelle.

$ sudo apt-get install docker.io

Si vous ajoutez l'option -E à sudo, elle passera si vous héritez de la variable d'environnement, mais il est difficile d'ajouter -E à chaque fois, il est donc plus facile d'écrire le fichier de paramètres apt comme une autre méthode.

:/etc/apt/apt.conf.d/00-proxy


Acquire::http::Proxy "http://{HOST}:{port}";
Acquire::https::Proxy "http://{HOST}:{port}";

Je pense que les gens de RHEL / CentOS ont une méthode de réglage pour yum, alors s'il vous plaît google de manière appropriée.

Docker Engine Si vous déposez l'image avec docker pull etc., vous devez définir le proxy dans Docker Engine.

Vous pouvez simplement définir la variable d'environnement HTTP_PROXY`` HTTPS_PROXY, mais je pense que la plupart du temps, cela fonctionne avec Systemd, il est donc rapide de spécifier la variable d'environnement dans le fichier de configuration Systemd.

/lib/systemd/system/docker.service


[Service]
Environment=HTTP_PROXY=http://{HOST}:{port}
Environment=HTTPS_PROXY=http://{HOST}:{port}

Lors de la création d'une image Docker

Non seulement lors de la construction d'une image Docker, mais si vous voulez accéder à Internet avec ʻapt-get install` etc., vous devez définir un proxy pour chaque outil.

Puisque apt-get, pip, etc. passent par le proxy simplement en définissant la variable d'environnement, définissez la variable d'environnement pour le moment et supportez les outils qui doivent être gérés individuellement. Vous pouvez spécifier les variables d'environnement dans le Dockerfile pour définir les variables d'environnement au moment de la construction, mais il semble préférable d'utiliser ARG.

Par exemple, pour spécifier des arguments dans le fichier de configuration Docker Compose, spécifiez l'option de génération de service comme suit.

docker-compose.yml


  build:
    context: .
    args:
      - http_proxy=http://{HOST}:{port}
      - https_proxy=http://{HOST}:{port}
      - HTTP_PROXY=http://{HOST}:{port}
      - HTTPS_PROXY=http://{HOST}:{port}

En fonction de l'outil, le nom de la variable d'environnement correspondant peut être supérieur ou inférieur, il est donc préférable de spécifier les deux. (Par exemple, apt-get ne reconnaît pas même si vous spécifiez la majuscule HTTP_PROXY)

Au démarrage du conteneur Docker

Lors du démarrage d'un conteneur, il est nécessaire de définir un proxy pour chaque outil comme dans le cas de la construction, donc la seule chose qui peut être faite autre que le support individuel est de définir des variables d'environnement.

Il est gênant de spécifier la variable d'environnement à chaque démarrage du conteneur, il est donc plus facile d'écrire ~ / .docker / config.json et d'utiliser la fonction qui définit automatiquement HTTP_PROXY etc. dans le conteneur.

json:~/.docker/config.json


{
  "proxies": {
    "default": {
      "httpProxy": "http://{HOST}:{port}",
      "httpsProxy": "http://{HOST}:{port}"
    }
  }
}

Configure Docker to use a proxy server | Docker Documentation

Autre

Ceux qui ne peuvent pas être gérés par des variables d'environnement avec des paramètres autres que Docker (git, curl, boto3, etc.) Googler et les définir individuellement.

Recommended Posts

Docker sous environnement proxy
Installation de Pip (Windows) sous environnement Proxy
Lorsque pip échoue dans un environnement proxy
docker et PyCharm sous proxy dans Windows
Comment utiliser Tensorflow dans un environnement Docker
Construction de l'environnement: GCP + Docker
Serveur proxy avec Docker
Comment utiliser pip3 sous un environnement proxy Remarque
Utilisez AWS SDK for Python (boto) dans un environnement Proxy
Installation de Pip dans un environnement proxy
Préparer l'environnement python3 avec Docker
Construire un environnement Python sous un environnement Windows 7
Exécuter eclipse dans un environnement Docker (noVNC)
Créer un environnement go à l'aide de Docker
Construire un environnement Mysql + Python avec docker
python memo pip sous proxy, easy_install
Environnement
[Linux] Construction de l'environnement Docker sur Redhat
environnement en ligne du serveur de code (5) Lancer le serveur de code sur Docker
Reconstruisez l'environnement de développement de Django avec Docker! !! !! !!
[docker] Construction de l'environnement python3.5 + numpy + matplotlib
Utilisez la commande pip dans un environnement proxy HTTP qui nécessite une authentification
Exécution de la commande pip sous proxy (mémoire)
Créer un environnement Jupyter Lab (Python) avec Docker
Utilisez smbus avec python3 sous environnement pyenv
Utilisation de venv dans un environnement Windows + Docker [Python]
Comment créer un environnement NVIDIA Docker
J'ai créé un environnement Anaconda à l'aide de Docker!
Créer un environnement Python + uWSGI + Nginx avec Docker
Création d'un environnement Ubuntu, Python, OpenCV sur Docker
[Linux] Créer un environnement Jenkins avec Docker
Installez Python3 en utilisant pythonz sous l'environnement macports
Introduction à docker Création d'un environnement ubuntu dans ubuntu
Utiliser WebDAV dans un environnement Docker portable
Construire un environnement de NGINX + NGINX Unit + MySQL avec Docker
[Linux] Construction de l'environnement Docker avec Amazon Linux 2