GNU/Linux >> Znalost Linux >  >> Panels >> Docker

Jak přiřadit statickou IP ke kontejneru Docker

Statické IP adresy se nemění, když jsou kontejnery nebo služby zastaveny a spuštěny, takže jsou užitečné pro trvalé síťové propojení. Přiřazení statických IP adres kontejnerům Docker je snadný způsob, jak je zpřístupnit.

Proč používat statickou IP?

Existují dva druhy „statické IP“; privátní IP adresy používané pro vnitřní síť uvnitř serveru a veřejné IP adresy používané pro připojení mimo server, často přes internet.

Pokud potřebujete nastavit veřejnou IP adresu pro kontejner, budete chtít použít vazby portů. Porty můžete „publikovat“ v kontejneru Docker, aby byly přístupné z hostitele. I když existují pokročilejší nastavení sítě, toto je zdaleka nejjednodušší a nejběžnější. Například vazba portu 80 (HTTP) na hostiteli, aby ukazoval na kontejner NGINX:

docker run --publish=80:8080 nginx

Pokud chcete vytvořit statickou soukromou IP adresu, měli byste zvážit, zda ji vůbec potřebujete použít. Většinu času budete chtít statickou IP pro komunikaci s jedním kontejnerem z jiného nebo z hostitele. Ve většině případů to zvládne integrovaná síť Dockeru.

Docker je dodáván s výchozí sítí, ale pokud si vytvoříte vlastní, můžete kontejnerům při spuštění v této síti přidělit aliasy. Tento alias se automaticky převede na soukromou IP adresu kontejneru. Například kontejner NGINX zde může přistupovat k instanci MongoDB pomocí připojovacího řetězce mongodb://mongohost:27017 .

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

Chcete-li se dozvědět více, můžete si přečíst dokumentaci Dockeru o uživatelsky definovaných mostních sítích.

Stále však existuje mnoho případů, kdy budete chtít ručně zadat soukromou IP adresu, jako je například přístup ke kontejnerům přímo z hostitele. Stále k tomu budete muset použít vlastní síť Docker, ale její nastavení je snadné.

Nastavení statických IP adres

Nejprve budete muset nastavit síť Docker, a protože nám záleží na IP adrese, budete muset zadat pevnou podsíť:

docker network create --subnet=172.20.0.0/16 customnetwork

SOUVISEJÍCÍ: Co jsou podsítě a jak ovlivňují moji síť?

Poté můžete spustit kontejner a specifikovat síť pomocí --net příznak a specifikaci IP pomocí -ip příznak:

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

Správnost adresy můžete ověřit kontrolou v kontejneru pomocí exec -t bin/bash nebo kontrolou seznamu kontejnerů Docker:

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

Použití Docker Compose

Docker Compose je nástroj používaný ke spouštění více kontejnerů s předdefinovaným nastavením. To zahrnuje nastavení sítí se specifickými podsítěmi a kontejnery můžete připojit k sítím s pevnými IP pomocí ipv4_address konfigurační blok zobrazený zde:

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. Jak nainstalovat WordPress pomocí Docker

  2. Jak spustit program uvnitř kontejneru Docker?

  3. Jak spustit MySQL v kontejneru Docker

  1. Jak SSH do kontejneru Docker

  2. Jak nainstalovat Vim do kontejneru Docker

  3. Jak opustit kontejner Docker

  1. Jak spustit příkaz na spuštěném kontejneru Docker

  2. Jak nasadit PostgreSQL jako Docker Container

  3. Jak vypsat Docker kontejnery