Cet article présente principalement comment ajouter un pont réseau personnalisé dans Docker. L'éditeur pense que c'est plutôt bien, je vais donc le partager avec vous maintenant et le donner comme référence. Suivons l'éditeur et jetons un coup d'œil.
Lorsque le processus du service Docker démarre, il générera un pont réseau nommé docker0. Le conteneur sera monté sur ce pont par défaut, mais nous pouvons ajouter des paramètres de démarrage de Docker en. en ajoutant -b Birdge ou modifiez le fichier dockerconfig pour choisir le pont à utiliser.
Système d'exploitation : centos7
Supprimer le pont docker0
service docker stop //关闭docker服务 ip link set dev docker0 down //关闭docker0网桥 ip link del dev docker0 //删除docker0网桥
Paramètres de pont personnalisés (/etc/sysconfig/network-scripts/ iffichier cfg-br0)
DEVICE="br0" ONBOOT="yes" TYPE="Bridge" BOOTPROTO="static" IPADDR="10.10.10.20" NETMASK="255.255.255.0" GATEWAY="10.10.10.20" DEFROUTE="yes" NM_CONTROLLED="no"
Redémarrer le service réseau
service network restart
Afficher le pont réseau
[black@test opt]$ brctl show bridge name bridge id STP enabled interfaces br0 8000.32e7297502be no virbr0 8000.000000000000 yes
Ensuite, nous devons redémarrer Pour démarrez Docker, vous pouvez utiliser les deux méthodes suivantes lors du démarrage du processus du service Docker :
La première méthode : le paramètre -b spécifie le pont
[root@test opt]# docker -d -b br0 INFO[0000] Listening for HTTP on unix (/var/run/docker.sock) INFO[0000] [graphdriver] using prior storage driver "devicemapper" WARN[0000] Running modprobe bridge nf_nat failed with message: , error: exit status 1 INFO[0000] Loading containers: start. ...... INFO[0000] Loading containers: done. INFO[0000] Daemon has completed initialization INFO[0000] Docker daemon commit=786b29d execdriver=native-0.2 graphdriver=devicemapper version=1.7.1
Je ne Je ne sais pas pourquoi démarrer le processus du service Docker de cette manière bloquera le terminal actuel (︶︿︶), je dois donc rouvrir un terminal puis exécuter un conteneur
[root@test shell]# docker run -ti --rm centos:latest [root@3c6874559411 /]# ifconfig eth0 Link encap:Ethernet HWaddr 02:42:0A:0A:0A:01 inet addr:10.10.10.1 Bcast:0.0.0.0 Mask:255.255.255.0 inet6 addr: fe80::42:aff:fe0a:a01/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:5 errors:0 dropped:0 overruns:0 frame:0 TX packets:6 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:418 (418.0 b) TX bytes:508 (508.0 b)
Le conteneur utilise avec succès le br0 pont.
Deuxième : Modifier le fichier /etc/sysconfig/docker
J'ai rencontré un petit problème en faisant cette opération, j'ai modifié /etc/sysconfig/docker file
[root@test opt]# vi /etc/sysconfig/docker # /etc/sysconfig/docker # # Other arguments to pass to the docker daemon process # These will be parsed by the sysv initscript and appended # to the arguments list passed to docker -d other_args="-b br0"
Ensuite, utilisez service docker start pour démarrer le service docker, mais other_args ne prend pas effet. Sous centos7, servicer docker start utilisera toujours la commande systemctl start docker.service pour s'exécuter, donc je viens de le faire. ouvrez /usr/lib/systemd/system/docker.service et vérifiez
[root@test opt]# vi /lib/systemd/system/docker.service [Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network.target docker.socket Requires=docker.socket [Service] ExecStart=/usr/bin/docker -d -H fd:// MountFlags=slave LimitNOFILE=1048576 LimitNPROC=1048576 LimitCORE=infinity [Install] WantedBy=multi-user.target
et constatez que l'élément ExecStart n'a aucun paramètre en cours d'exécution, je change donc ExecStart en /usr/bin/docker -d -b br0 - H fd://, exécutez le service docker, démarrez un conteneur et constatez que le pont br0 peut être utilisé avec succès.
J'ai vu une meilleure méthode sur Internet, remplacez docker.service par ce qui suit
[black@test ~]$ vi /usr/lib/systemd/system/docker.service [Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network.target docker.socket Requires=docker.socket [Service] EnvironmentFile=-/etc/sysconfig/docker ExecStart=/usr/bin/docker -d $other_args -H fd:// MountFlags=slave LimitNOFILE=1048576 LimitNPROC=1048576 LimitCORE=infinity [Install] WantedBy=multi-user.target
À ce stade, les paramètres ajoutés dans other_args seront efficaces.
[Recommandations associées]
1. Tutoriel vidéo gratuit MySQL
4. Vous apprendre à ajuster la taille de la partition sous Linux
5.Comment Linux détecte-t-il les conditions du réseau du serveur
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!