GNU/Linux >> Linux Esercitazione >  >> Panels >> Docker

Come assegnare un IP statico a un contenitore Docker

Gli indirizzi IP statici non cambiano quando i container o i servizi vengono arrestati e avviati, rendendoli utili per il networking permanente. L'assegnazione di indirizzi IP statici ai container Docker è un modo semplice per renderli più accessibili.

Perché utilizzare un IP statico?

Esistono due tipi di "IP statico"; indirizzi IP privati ​​utilizzati per la rete interna all'interno di un server e indirizzi IP pubblici utilizzati per connettersi all'esterno del server, spesso su Internet.

Se devi configurare un indirizzo IP pubblico per un container, ti consigliamo di utilizzare i collegamenti alle porte. Puoi "pubblicare" le porte sul contenitore Docker per essere accessibili dall'host. Sebbene esistano configurazioni di rete più avanzate, questa è di gran lunga la più semplice e comune. Ad esempio, vincolare la porta 80 (HTTP) sull'host in modo che punti a un contenitore NGINX:

docker run --publish=80:8080 nginx

Se vuoi creare un indirizzo IP privato statico, dovresti considerare se è necessario utilizzarne uno. Il più delle volte, vorrai che un IP statico parli con un container da un altro o dall'host. Nella maggior parte dei casi, la rete integrata di Docker può gestirlo.

Docker viene fornito con una rete predefinita, ma se ne crei una tua, puoi assegnare alias ai contenitori quando viene avviato in quella rete. Questo alias si risolverà automaticamente nell'IP privato del contenitore. Ad esempio, il contenitore NGINX qui può accedere all'istanza MongoDB con la stringa di connessione mongodb://mongohost:27017 .

docker network create example
docker run --net example --name nginx -d nginx
docker network connect example --alias mongohost mongodb

Per saperne di più, puoi leggere la documentazione di Docker sulle reti bridge definite dall'utente.

Tuttavia, ci sono ancora molte volte in cui vorrai specificare manualmente un indirizzo IP privato, ad esempio accedere ai contenitori direttamente dall'host. Dovrai comunque utilizzare una rete Docker personalizzata per farlo, ma è facile da configurare.

Impostazione di IP statici

Innanzitutto, dovrai configurare una rete Docker e, poiché l'indirizzo IP è a noi molto importante, dovrai specificare una sottorete fissa:

docker network create --subnet=172.20.0.0/16 customnetwork

RELAZIONATO: Cosa sono le sottoreti e in che modo influiscono sulla mia rete?

Quindi, puoi eseguire un container, specificando la rete con --net flag e specificando l'IP con -ip bandiera:

docker run --net customnetwork --ip 172.20.0.10 -d container

Puoi verificare che l'indirizzo sia corretto controllandolo nel contenitore con exec -t bin/bash o esaminando l'elenco dei contenitori Docker:

docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' name_or_id

Utilizzo di Docker Compose

Docker Compose è uno strumento utilizzato per avviare più contenitori con impostazioni predefinite. Ciò include la configurazione di reti con sottoreti specifiche e puoi allegare contenitori a reti con IP fissi utilizzando il ipv4_address blocco di configurazione mostrato qui:

version: '2'
services:
  webserver:
    image: nginx
    container_name: web-server
    networks:
      customnetwork:
        ipv4_address: 172.20.0.10
networks:
  customnetwork:
    ipam:
      config:
        - subnet: 172.20.0.0/16

Docker
  1. Come installare WordPress utilizzando Docker

  2. Come eseguire un programma all'interno di un contenitore Docker?

  3. Come eseguire MySQL in un contenitore Docker

  4. Come SSH in un contenitore Docker

  5. Come installare Vim in un contenitore Docker

Come eseguire PHPMyAdmin in un contenitore Docker

Come eseguire Grafana in un contenitore Docker

Come aggiungere un volume a un contenitore Docker esistente

Come impostare Pihole in un contenitore Docker

Come configurare un container Docker Apache

Come eseguire i contenitori Docker