Formation DevOps | Formation Terraform : 22- Réseau :Les links Docker

www.itgalaxy.io

L’installation de Docker crée par défaut un réseau nommé bridge (interface Docker0).

Il est utilisé par les conteneurs si aucun réseau n’est spécifié au lancement (option –network=mon_reseau )

une adresse IP prive ainsi qu’une adresse MAC sont assignées au bridge , configuration des tables de routage (route et iptables).

Par défaut, tous les conteneurs peuvent communiquer entre eux sur le réseau bridge.
Pour plus de sécurité, il est possible de désactiver ce comportement (option DOCKER_OPTS="-icc=false" de la
configuration de daemon).$ docker network ls

NETWORK ID NAME
DRIVER SCOPE
8dd02d7ad16f bridge
bridge local
72244137afae host
host local
f7ab4027acf8 none
null local

$ docker network inspect bridge
{
“Name”: “bridge”,
“Id”:
“8dd02d7ad16f9e47a774f0ee5a652a606ecc23bcc15c126d3e6fbf6fd1c3465c”,
“Created”: “2017- 12 - 05T16:44:54.821533922+01:00”,
“Scope”: “local”,
“Driver”: “bridge”,
“EnableIPv6”: false,
“IPAM”: {
“Driver”: “default”,
“Options”: null,
“Config”: [
{
“Subnet”: “172.17.0.0/16”,
“Gateway”: “172.17.0.1”
}

Les conteneurs utilisent une adresse IP fournie par le daemon Docker (réseau privé non routable: 172.17.0.0/16,
gateway: 172.17.0.1).

Sous linux, Docker utilise netfilter (iptables) pour implémenter les fonctions de NAT qui permettent aux conteneurs de communiquer avec l’extérieur en utilisant l’adresse IP de l’hôte et les fonctions de DNAT
pour joindre les conteneurs depuis l’extérieur en utilisant un port particulier.

$ docker run -d -p 8006:80 –name test_port nginx

Ici l’option -p permet d’exposer le port 80 du conteneur et de joindre le conteneur sur le port 8006 et l’adresse IP de l’hôte

Faire communiquer deux conteneurs (option : –link )

On démarre un conteneur avec une database MySQL

$ docker run –name mysql -e MYSQL_ROOT_PASSWORD=bonjour -d mysql:5.7

L’option -e (dans l’exemple ci-dessus –e MYSQL_ROOT_PASSWORD=bonjour ) permet de passer des variables
d’environnement au conteneur (ici on définit le password root de la base de données).

On démarre ensuite un conteneur avec l’interface PHPmyadmin, qui permet d’administrer une base de données
MySQL.

L’option –link permet de renseigner le fichier host du conteneur phpmyadmin pour qu’il puisse se connecter à la base de données.
$ docker run –name phpmyadmin -d –link mysql:db -p 8080:80 phpmyadmin/

On consulte le fichier hosts du conteneur phpmyadmin:
$ docker exec phpmyadmin cat /etc/hosts
cat /etc/hosts
127.0.0.1 localhost
172.17.0.3 db d72489c44026 mysql
172.17.0.4 7d5ed10b026e

Ici on constate que les alias db et mysql pointent vers l’ip 172.17.0.3 du serveur MySQL
$ docker inspect mysql | grep
IP

“LinkLocalIPv6Address”: “”,
“LinkLocalIPv6PrefixLen”: 0,
“SecondaryIPAddresses”: null,
“SecondaryIPv6Addresses”:
null,
“GlobalIPv6Address”: “”,
“GlobalIPv6PrefixLen”: 0,
“IPAddress”: “172.17.0.3”,
“IPPrefixLen”: 16,
“IPv6Gateway”: “”,
“IPAMConfig”: null,
“IPAddress”: “172.17.0.3”,
“IPPrefixLen”: 16,
“IPv6Gateway”: “”,
“GlobalIPv6Address”: “”,
“GlobalIPv6PrefixLen”: 0,

La commande inspect permet de confirmer l’adresse IP du conteneur MySQL. On teste depuis un navigateur avec l’URL : http://:8080 l’utilisation de phpmyadmin pour
administrer la base. ```






1. Nous contactez


2. Infra as a Service

  • Description: Infrastructure cloud évolutive et sécurisée
  • Links:

3. Projets Développeurs


4. Développeurs


5. Formations Complètes


6. Marketplace

7. Blogs


This website is powered by ItGalaxy.io