docker-compose
Esempio di contenitore multiplo di Docker-compose con rete predefinita
Ricerca…
Osservazioni
Per impostazione predefinita, Compose imposta una singola rete per la tua app. Ogni contenitore di un servizio si unisce alla rete predefinita ed è raggiungibile sia da altri contenitori su quella rete, sia individuabile da essi in un nome host identico al nome del contenitore.
I collegamenti consentono di definire alias aggiuntivi mediante i quali un servizio è raggiungibile da un altro servizio. Non è necessario abilitare i servizi per comunicare: per impostazione predefinita, qualsiasi servizio può raggiungere qualsiasi altro servizio con il nome di quel servizio.
Come creare un ambiente LAMP di base con networking predefinito
finestra mobile-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;
}
}
}
Nota che la configurazione di nginx è semplificata, ma in precedenza dovrebbe funzionare per il test: in pratica tutto ciò che sta facendo è il proxy dell'applicazione php. Esegui il mapping sulla porta 81 per evitare conflitti sull'host - regolare come necessario.
Per quanto riguarda il collegamento, puoi vedere che se esegui: docker-compose exec mysql ping -c2 nginx
per eseguire il ping dal contenitore mysql al contenitore nginx, avrai successo anche se non ci sono collegamenti specificati tra questi contenitori . Docker Compose gestirà tali collegamenti nella rete predefinita per te.