GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Docker

So weisen Sie einem Docker-Container eine statische IP zu

Statische IP-Adressen ändern sich nicht, wenn Container oder Dienste gestoppt und gestartet werden, was sie für eine dauerhafte Vernetzung nützlich macht. Das Zuweisen statischer IP-Adressen für Docker-Container ist eine einfache Möglichkeit, sie leichter zugänglich zu machen.

Warum eine statische IP verwenden?

Es gibt zwei Arten von „statischen IPs“; private IP-Adressen, die für interne Netzwerke innerhalb eines Servers verwendet werden, und öffentliche IP-Adressen, die für Verbindungen außerhalb des Servers verwendet werden, oft über das Internet.

Wenn Sie eine öffentliche IP-Adresse für einen Container einrichten müssen, sollten Sie Portbindungen verwenden. Sie können Ports im Docker-Container „veröffentlichen“, damit sie vom Host aus zugänglich sind. Obwohl es fortgeschrittenere Netzwerk-Setups gibt, ist dies bei weitem das einfachste und gebräuchlichste. Binden Sie beispielsweise Port 80 (HTTP) auf dem Host so, dass er auf einen NGINX-Container verweist:

docker run --publish=80:8080 nginx

Wenn Sie eine statische private IP-Adresse erstellen möchten, sollten Sie überlegen, ob Sie überhaupt eine verwenden müssen. Meistens möchten Sie, dass eine statische IP mit einem Container von einem anderen oder vom Host kommuniziert. In den meisten Fällen kann das integrierte Netzwerk von Docker damit umgehen.

Docker wird mit einem Standardnetzwerk geliefert, aber wenn Sie Ihr eigenes erstellen, können Sie Containern Aliase geben, wenn sie in diesem Netzwerk gestartet werden. Dieser Alias ​​wird automatisch in die private IP des Containers aufgelöst. Beispielsweise kann der NGINX-Container hier mit der Verbindungszeichenfolge mongodb://mongohost:27017 auf die MongoDB-Instanz zugreifen .

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

Um mehr zu erfahren, können Sie die Docker-Dokumentation zu benutzerdefinierten Bridge-Netzwerken lesen.

Es gibt jedoch immer noch viele Fälle, in denen Sie eine private IP-Adresse manuell angeben möchten, z. B. wenn Sie direkt vom Host auf Container zugreifen. Sie müssen dazu immer noch ein benutzerdefiniertes Docker-Netzwerk verwenden, aber es ist einfach einzurichten.

Statische IPs einrichten

Zuerst müssen Sie ein Docker-Netzwerk einrichten, und da uns die IP-Adresse wichtig ist, müssen Sie ein festes Subnetz angeben:

docker network create --subnet=172.20.0.0/16 customnetwork

VERBINDUNG: Was sind Subnetze und wie wirken sie sich auf mein Netzwerk aus?

Dann können Sie einen Container ausführen, indem Sie das Netzwerk mit --net angeben -Flag und Angabe der IP mit -ip Flagge:

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

Sie können überprüfen, ob die Adresse korrekt ist, indem Sie sie im Container mit exec -t bin/bash überprüfen , oder durch Überprüfen der Docker-Containerliste:

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

Verwendung von Docker Compose

Docker Compose ist ein Tool zum Starten mehrerer Container mit vordefinierten Einstellungen. Dazu gehört das Einrichten von Netzwerken mit bestimmten Subnetzen, und Sie können Container mit der ipv4_address an Netzwerke mit festen IPs anhängen Konfigurationsblock, der hier gezeigt wird:

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. So installieren Sie WordPress mit Docker

  2. Wie führe ich ein Programm in einem Docker-Container aus?

  3. So führen Sie einen Befehl in einem laufenden Docker-Container aus

  4. So stellen Sie PostgreSQL als Docker-Container bereit

  5. So beenden Sie einen Docker-Container

So führen Sie PHPMyAdmin in einem Docker-Container aus

So führen Sie Grafana in einem Docker-Container aus

So fügen Sie einem vorhandenen Docker-Container ein Volume hinzu

So richten Sie Pihole in einem Docker-Container ein

So richten Sie einen Apache Docker-Container ein

So führen Sie Docker-Container aus