reti virtuali
This commit is contained in:
@@ -116,3 +116,48 @@ docker ps
|
||||
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
||||
6559daa92656 nginx:latest "/docker-entrypoint.…" 3 seconds ago Up 2 seconds 127.0.0.1:32769->80/tcp nginx
|
||||
```
|
||||
|
||||
## Reti virtuali
|
||||
|
||||
Per impostazione predefinita, i container Docker sono isolati l'uno dall'altro, il che impedisce la comunicazione diretta tra servizi che operano su stack diversi. Tuttavia, è possibile creare una rete virtuale condivisa tra container di due stack differenti, consentendo loro di comunicare.
|
||||
|
||||
La sintassi, per definire un nuovo network è la seguente:
|
||||
|
||||
```yml
|
||||
services:
|
||||
nginx:
|
||||
image: 'nginx:latest'
|
||||
container_name: ${APP_NAME:?err}-nginx
|
||||
ports:
|
||||
- '8081:80'
|
||||
- '8443:443'
|
||||
volumes:
|
||||
- './app:/var/www/html'
|
||||
- './config/nginx:/etc/nginx/conf.d'
|
||||
networks:
|
||||
- default # Le reti sotto network non vengono aggiunte alla configurazione di default, ma sostituite. Pertanto, la rete default deve essere specificata esplicitamente
|
||||
- nginx # Il container nginx farà parte dei seguenti network
|
||||
networks:
|
||||
nginx:
|
||||
name: mynetwork
|
||||
```
|
||||
|
||||
Nel secondo stack, è necessario definire la stessa rete per consentire la comunicazione tra i container:
|
||||
|
||||
```yml
|
||||
services:
|
||||
debug:
|
||||
image: ubuntu
|
||||
entrypoint: "bash -c 'while true; do sleep 1; done'"
|
||||
networks:
|
||||
- default
|
||||
- nginx
|
||||
|
||||
networks:
|
||||
nginx:
|
||||
name: mynetwork
|
||||
external: true # La rete è definita esternamente. Se non specificato, verrebbe generato un errore, poiché la rete esiste già e non può essere creata una rete con nome identico
|
||||
|
||||
```
|
||||
|
||||
In questo modo, è possibile mettere in comunicazione due container di due stack diversi, semplicemente creando una rete virtuale condivisa.
|
||||
|
Reference in New Issue
Block a user