docker-compose
Docker compose un exemple multi-conteneur avec un réseau par défaut
Recherche…
Remarques
Par défaut, Compose configure un réseau unique pour votre application. Chaque conteneur d'un service rejoint le réseau par défaut et est accessible à la fois par d'autres conteneurs sur ce réseau et détectable par ceux-ci à un nom d'hôte identique au nom du conteneur.
Les liens vous permettent de définir des alias supplémentaires par lesquels un service est accessible depuis un autre service. Ils ne sont pas requis pour permettre aux services de communiquer - par défaut, tout service peut accéder à tout autre service au nom de ce service.
Comment créer un environnement LAMP de base avec la mise en réseau par défaut
docker-compose.yml
version: '2'
services:
php:
image: phpmyadmin/phpmyadmin
links:
- mysql:db
depends_on:
- mysql
mysql:
image: k0st/alpine-mariadb
volumes:
- ./data/mysql:/var/lib/mysql
environment:
- MYSQL_DATABASE=mydb
- MYSQL_USER=myuser
- MYSQL_PASSWORD=mypass
nginx:
image: nginx:stable-alpine
ports:
- "81:80"
volumes:
- ./nginx/log:/var/log/nginx
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
depends_on:
- php
nginx / nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
sendfile off;
server {
listen 80;
location / {
proxy_pass http://php;
proxy_set_header Host $host;
proxy_redirect off;
}
}
}
Notez que la configuration de nginx est simplifiée, mais que cela devrait fonctionner pour les tests. Mappe au port 81 pour éviter les conflits sur l'hôte - ajustez au besoin.
En ce qui concerne la liaison, vous pouvez voir que si vous exécutez: docker-compose exec mysql ping -c2 nginx
ping du conteneur mysql au conteneur nginx, vous réussirez même si il n'y a aucun lien entre ces conteneurs spécifiés. Docker Compose conservera ces liens dans le réseau par défaut pour vous.