Script de configuration pour l'utilisation de docker dans un environnement proxy sur ubuntu 20.04.1

Script de configuration pour l'utilisation de docker dans un environnement proxy sur ubuntu 20.04.1

J'ai créé un script pour définir Utiliser le docker dans l'environnement proxy sur ubuntu 20.04.1 à la fois.

Comment utiliser

  1. Enregistrez-le sous docker-proxy.py.
  2. Donnez l'autorisation d'exécution avec chmod + x docker-proxy.py.
  3. Exécutez-le en tant que sudo docker-proxy.py proxy-url.

Ici, pour proxy-url, spécifiez une chaîne de caractères telle que http: //192.168.11.61: 3128.

Corps du script

#!/usr/bin/python3

import string
import subprocess
import os
import sys

###########################################################################
#  template for /etc/apt/apt.conf
###########################################################################
template_apt_conf = """\
Acquire::http::Proxy "$proxy_url";
Acquire::https::Proxy "$proxy_url";
"""


###########################################################################
#  template for /etc/systemd/system/docker.service.d/override.conf
###########################################################################
template_docker_service_override = """\
[Service]
Environment="HTTP_PROXY=$proxy_url"
Environment="HTTPS_PROXY=$proxy_url"
Environment="NO_PROXY=localhost,127.0.0.1"
"""

###########################################################################
#  template for ~/.docker/config.json
###########################################################################
template_config_json = """\
{
  "proxies": {
    "default": {
      "httpProxy": "$proxy_url",
      "httpsProxy": "$proxy_url",
      "noProxy": "localhost,127.0.0.1"
    }
  }
}
"""


###########################################################################
#  write proxy data to a file
###########################################################################
def write_proxy(file_name, input_template, proxy_url):
    context = {
        'proxy_url' : proxy_url
    }
    template = string.Template(input_template)
    data = template.substitute(context)

    with open(file_name, "w") as fout:
        fout.write(data)
    print("wrote: " + file_name)

###########################################################################
#  get the home directory of the original user
###########################################################################
def get_original_home():
    user = os.environ['SUDO_USER']
    if user:
        home_dir = os.path.expanduser('~' + user)
    else:
        home_dir = os.path.expanduser('~')
    return home_dir

###########################################################################
#  write etc/apt/apt.conf
###########################################################################
def write_apt_conf(proxy_url):
    write_proxy('/etc/apt/apt.conf', template_apt_conf, proxy_url)

###########################################################################
#  write /etc/systemd/system/docker.service.d/override.conf
###########################################################################
def write_docker_service_override(proxy_url):
    docker_service_d = '/etc/systemd/system/docker.service.d'
    if not os.path.isdir(docker_service_d):
        os.mkdir(docker_service_d)

    override_conf = os.path.join(docker_service_d, "override.conf")
    write_proxy(override_conf, template_docker_service_override, proxy_url)

###########################################################################
#  write ~/.docker/config.json
###########################################################################
def write_docker_config(proxy_url):
    # get the path of ~/.docker
    home_dir = get_original_home()
    docker_dir = os.path.join(home_dir, ".docker")

    # create ~/.docker
    if not os.path.isdir(docker_dir):
        os.mkdir(docker_dir)

    # get ~/.docker/config.json
    config_json = os.path.join(docker_dir, "config.json")
    write_proxy(config_json, template_config_json, proxy_url)

###########################################################################
#  usage
###########################################################################
def usage():
    print("usage: sudo docker-proxy.py proxy-url")
    print("example: sudo docker-proxy.py http://192.168.11.61:3128")
    
def exec(command):
    subprocess.call(command.split(), shell=False)
    print("ran: " + command)

if __name__ == '__main__':
    if len(sys.argv) != 2 or os.getuid() != 0:
        usage()
        sys.exit(1)

    proxy_url = sys.argv[1]

    exec('apt install -y docker.io docker-compose')

    write_apt_conf(proxy_url)
    write_docker_service_override(proxy_url)
    write_docker_config(proxy_url)

    exec('systemctl daemon-reload')
    exec('systemctl restart docker')

https://gist.github.com/m-tmatma/4f5d3e8233c1040fa453d5857326fd4c

Traitement du contenu

Installez docker.

apt install -y docker.io docker-compose

Écrivez les paramètres de proxy dans le fichier suivant. (Créez un dossier si nécessaire.)

Exécutez la commande suivante pour refléter le fichier de configuration du démon docker.

Recommended Posts

Script de configuration pour l'utilisation de docker dans un environnement proxy sur ubuntu 20.04.1
Utiliser docker dans un environnement proxy sur ubuntu 20.04.1
Installez Ubuntu 20.04 dans la boîte virtuelle sur Windows10 et créez un environnement de développement à l'aide de docker
Utilisez MailHog pour vérifier le courrier dans l'environnement de développement (à l'aide de Docker)
Essayez de mettre Docker dans ubuntu sur WSL
Remarque: paramètres nginx.conf pour CORS dans Exment sur l'environnement Lightsail + Docker (nginx)
Installez simplement Laravel 8 sur le docker dans l'environnement PHP8
Mémo de commande pour installer xeyes dans l'environnement docker ubuntu
Installez Docker sur Ubuntu Server 20.04
Oracle Java 8 sur Docker Ubuntu
Installation du proxy MAV sur Ubuntu 18.04
Installez docker et docker-compose sur ubuntu dans les plus brefs délais
Créer un environnement de test de navigateur à l'aide de Capybara dans l'environnement de développement Docker
Installez Docker sur Ubuntu et configurez la connexion à distance à l'aide de tls
Construction d'environnement avec Docker pour les débutants
Essayez Redmine sur le docker Mac
Créer un environnement XAMPP sur Ubuntu
Rails sur la procédure de construction de l'environnement Docker
Utilisation de Docker avec Windows10 Home WSL2
Construisez ffmpeg 4.3.1 sur Ubuntu pour Windows
Créer un environnement de développement Unity sur docker
Créer un environnement de débogage sur un conteneur - Créer un environnement de développement local pour les didacticiels Rails avec Docker -
Installons Docker sur Windows 10 et créons un environnement de vérification pour CentOS 8!
Exécutez Redmine dans l'environnement local de Windows10 Pro-Use Docker Desktop pour Windows
Mettez Zabbix dans Ubuntu avec Docker et surveillez Docker sur le même hôte
Créez rapidement un environnement Web à l'aide de Docker
Installez Vivado dans l'environnement WSL2 + Ubuntu 20.04 LTS
[Docker] Utiliser des variables d'environnement dans Nginx conf
Exécutez NordVPN dans le conteneur Ubuntu Docker (Windows)
Prise en charge des erreurs gdb dans les conteneurs Docker
Grattage avec marionnettiste à Nuxt sur Docker.
Modifier Mysql avec des commandes dans l'environnement Docker
Serveur proxy par squid en utilisant l'image docker
[Ruby] Création d'un environnement de développement Ruby sur Ubuntu
Créer un serveur proxy d'authentification à l'aide de Docker
Implémentation par lots dans l'environnement RubyOnRails à l'aide de Digdag
Créer un environnement de lecture de code Redmine sur Docker
Mise à jour de l'environnement Java de Windows à l'aide de Chocolatey