
Docker container IP change cette chose, vraiment pas vous pensez si mystérieux
Quiconque a travaillé avec Docker sait que l'attribution d'IP par défaut revient à ouvrir une boîte aveugle, ce qui peut vous donner tout un segment de réseau 172.17.0.X. Si plusieurs conteneurs veulent mettre en place un réseau local, ou ont besoin d'une IP fixe pour ancrer le service proxy, cette attribution aléatoire peut être un piège. Aujourd'hui, nous allons comprendre comment attribuer une adresse IP aléatoire à un conteneur Docker.Adresse IP personnaliséeAu passage, je vous apprendrai à jouer avec les IP proxy d'ipipgo.
Comprendre d'abord le mécanisme "Virtual NIC" de Docker
Par défaut, Docker crée un réseau virtuel appelé bridge, qui est comme un quartier séparé pour les conteneurs. Si vous souhaitez changer d'adresse IP, vous devrez en créer une nouvelle :
Créez une nouvelle tranche appelée my-net et définissez la passerelle à 192.168.99.1
docker network create --subnet=192.168.99.0/24 --gateway=192.168.99.1 my-net
Veillez à ne pas entrer en conflit avec le segment de réseau de l'hôte, il est recommandé d'utiliser un segment froid tel que 192.168.99.X ou 10.10.10.X. Après avoir construit le segment de réseau, utilisez la commandedocker network lsVous pourrez voir le my-net qui vient d'être redressé.
La bonne posture pour attribuer une IP fixe à un conteneur
Le démarrage du conteneur avec le paramètre -ip est effectué, mais il y a deux pièges à éviter :
1. les réseaux personnalisés doivent être spécifiés
Démonstration d'erreur (l'utilisation du réseau par défaut génère une erreur)
docker run -it --ip 192.168.99.10 ubuntu
Position correcte
docker run -it --network=my-net --ip 192.168.99.10 ubuntu
2. l'IP doit se trouver à l'intérieur du segment de réseau
Par exemple, si vous construisez un segment 192.168.99.0/24, les IP disponibles sont 192.168.99.1~192.168.99.254. Il est recommandé de créer un tableau d'attribution des IP :
| Nom du conteneur | utiliser | Adresse IP |
|---|---|---|
| web01 | service frontal | 192.168.99.10 |
| mandataire01 | Agent de transit | 192.168.99.20 |
| db01 | base de données complète | 192.168.99.30 |
Configuration des IP proxy dans les conteneurs
C'est le moment de sortir de notre ipipgo, de prendre l'agent résidentiel statique comme un marronnier :
Définir le proxy global dans le conteneur
export http_proxy="http://用户名:密码@gateway.ipipgo.net:端口"
export https_proxy="http://用户名:密码@gateway.ipipgo.net:端口"
Testez l'IP pour voir si elle fonctionne
curl ipinfo.io
Si vous voyez que l'IP renvoyée s'avère être le nœud d'ipipgo, c'est solide. Suggérer d'utiliser leurForfait résidentiel statiqueLe prix d'une IP fixe est de 35 $ par mois, ce qui est beaucoup plus fiable qu'une IP dynamique.
Foire aux questions QA
Q : Que dois-je faire si je n'arrive pas à obtenir un ping entre les conteneurs après avoir changé l'IP ?
R : Vérifiez d'abord les règles du pare-feu, puis assurez-vous que tous les conteneurs sont sur le même réseau personnalisé. Vous pouvez utiliser docker network inspect my-net pour voir l'état de la connexion.
Q : Que dois-je faire si l'IP proxy ne parvient soudainement pas à se connecter ?
R : Utilisez d'abord docker exec dans le conteneur pour tester la connectivité du réseau. S'il s'agit d'un problème avec les nœuds d'ipipgo, leur service clientèle répond rapidement, et l'arrière-plan peut également changer les nœuds de sortie en libre-service.
Q : Comment puis-je gérer des agents pour plusieurs conteneurs en vrac ?
R : Il est recommandé d'utiliser l'API d'ipipgo pour obtenir dynamiquement des proxies et d'écrire un script shell pour les mettre à jour régulièrement. La documentation de l'API peut être comprise par des élèves de l'école primaire, elle prend en charge les formats multiples json et txt.
Dites quelque chose qui vient du cœur.
En fait, la configuration du réseau de cette chose, c'est comme des blocs de construction, essayez plusieurs fois pour comprendre la porte. ipipgo a un voleur qui utilise bien la fonction---Configuration en un clic côté clientVous n'avez pas à vous souvenir de toutes ces commandes compliquées. Surtout faire crawler ou collecte de données vieux frère, directement choisir leur ligne TK, que de jeter le réseau Docker pour économiser beaucoup de chagrin d'amour. Rappelez-vous, la technologie est pour les services commerciaux, ne pas mettre la charrue avant les bœufs.

