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.
- Lors de la construction : ajouter
--network=host
des 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
- Lors de l'exécution : ajouter
--net=host
des 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 images
afficher tous les noms d'image, puis en sélectionner une à exécuter. Lors de l'exécution, image
un conteneur sera généré en fonction du conteneur .
Après l'avoir ajouté, net=host
le 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: