reti virtuali
This commit is contained in:
@@ -116,3 +116,48 @@ docker ps
|
|||||||
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
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
|
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