[Record] Docker|Ubuntu Docker modifie le fichier dockerfile pour changer la source, héberge le réseau de partage pour résoudre l'échec de la mise à jour apt

L'environnement de test de cet article : machine virtuelle Ubuntu20.04 Docker20

1 Modifier le dockerfile

Ajoutez le contenu suivant après la deuxième ligne de dockerfile pour changer la source en un clic :

RUN sed -i s:/archive.ubuntu.com:/mirrors.tuna.tsinghua.edu.cn/ubuntu:g /etc/apt/sources.list
RUN cat /etc/apt/sources.list
RUN apt-get clean
RUN apt-get -y update --fix-missing

Référence : le conteneur Docker ne peut pas être connecté à Internet et la mise à jour apt ne parvient pas à résoudre

2 Modifiez l'option de construction pour partager le réseau avec l'hôte

Si vous n'avez toujours pas de réseau après avoir changé la source, vous pouvez essayer de partager le réseau entre docker et l'hôte.

Notez que les paramètres ajoutés lors du partage du réseau lors de la construction et de l'exécution sont incohérents. De plus, si des paramètres sont ajoutés au moment de la construction mais pas au moment de l'exécution, le réseau du conteneur créé ne sera pas partagé avec l'hôte ; de même, si des paramètres sont ajoutés au moment de l'exécution mais pas au moment de la construction, le conteneur créé sera partagé avec l'hôte L'hôte est partagé, mais le réseau pendant le processus d'image de construction ne sera pas partagé avec l'hôte.

La manière spécifique d'ajouter est la suivante.

  1. Lors de la construction : ajouter --network=hostdes paramètres :
sudo -S docker build --network=host -t 【image的名字】 .

Parmi eux, [nom de l'image] est personnalisé.Lors de la construction, l' image sera généréesudo -S docker build --network=host -t 【image的名字】 . en fonction du dossier où se trouve le paramètre (par exemple, le paramètre est .le répertoire courant) .dockerfile

  1. Lors de l'exécution : ajouter --net=hostdes paramètres :
sudo docker run --net=host -it 【image的名字】 /bin/bash

Parmi eux, [nom de l'image] est une image existante, vous pouvez sudo docker imagesafficher tous les noms d'image, puis en sélectionner une à exécuter. Lors de l'exécution, imageun conteneur sera généré en fonction du conteneur .

Après l'avoir ajouté, net=hostle conteneur créé partagera le réseau avec l'hôte. Lors de la saisie de la ligne de commande, le nom s'affiche sous la forme du nom de l'hôte au lieu d'une chaîne d'identifiants, par exemple root@shan:/#.

référence:

  1. Docker - la solution à l'échec d'apt-get update dans le conteneur
  2. Docker - Le paramètre --net=host modifie le mode réseau du conteneur
  3. Comment utiliser le réseau hôte pendant la construction et l'exécution de Docker

Guess you like

Origin blog.csdn.net/qq_46106285/article/details/131559920