Den Privaten IP-Adressbereich von Docker anpassen

In der Standardeinstellung verwendet die Container-Engine “Docker” das private 172.17.0.0/16 Subnetz um Container mit IPv4-Adressen zu versorgen.

Dieser IP-Bereich, wird im UKLAN schon durch die Abteilung Netze des RRZK verwendet. In diesem werden zentrale universitätsweite Dienste bereitgestellt. Damit es zu keiner Beeinträchtigung durch Überschneidungen kommt, muss der IP-Bereich der Docker-Engine auf Systemen, welche innerhalb des UKLANs betrieben werden, geändert werden.

Beispiel für eine häufig aus diesem Grund auftretende Beeinträchtigung: Wenn Sie von einem Linux-Desktop-System auf welchem Docker installiert ist, innerhalb des UKLANs auf die VMware Admin-Oberfläche zugreifen wollen (https://vmfront6.uni-koeln.de), ist dies nicht möglich.

Notwendige Schritte für: Docker CE ab Version 18.06 | Docker 1.13 auf RHEL7

Standard IP-Bereich ändern (ab Version 18.06)

Wenn Sie die jeweils aktuellste Version der Software direkt aus den externen Repositories von download.docker.com beziehen, müssen Sie wie folgt vorgehen:

Konfigurationsdatei für den Docker-Daemon bearbeiten oder erstellen:

# nano /etc/docker/daemon.json

Einfügen:

{
  "default-address-pools":
  [
    {"base":"192.168.0.0/16","size":24}
  ]
}

Diese Einstellung sorgt dafür, dass aus dem privaten Netzadressbereich (192.168.0.0/16), Subnetze mit jeweils 254 möglichen Containern gebildet werden. Neue Docker Networks bekommen jeweile den Bereich 192.168.1.0/24, 192.168.2.0/24 usw.

Anschließend muss die Container Engine neugestartet werden:

# service docker restart

Wenn Sie “Docker Compose” verwenden, sollten auch darüber automatisch erzeugte Docker Networks (Endung _default) einmal gelöscht und neu erstellt werden:

$ docker-compose stop

Docker Network raussuchen und löschen. In diesem Beispiel, wäre es das Netzwerk webapp_default:

$ docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
798f15d3dfc3        bridge              bridge              local
c3661b86d89c        webapp_default      bridge              local
fcb518e69224        host                host                local
bd6153d36d17        none                null                local
$ docker network rm webapp_default
webapp_default

Anschließend können die Dienste mit docker-compose up -d wieder neugestartet werden. Das löschen und neu anlegen, sollte auch bei sonstigen manuell erzeugten Docker Networks durchgeführt werden.

Zum überprüfen, können Sie sich die jeweiligen Subnetze ausgeben lassen:

$ docker network inspect bridge webapp_default | grep Subnet
                    "Subnet": "192.168.0.0/24"
                    "Subnet": "192.168.1.0/24",

Den Standard IP-Bereich ändern auf Docker und RHEL 7 (Version 1.13.x)

Wenn Sie Docker auf einem Red Hat Enterprise Linux 7 System, über das RHEL Extras Repository beziehen, erhalten Sie die Version 1.13.x. Bei dieser ist die Konfiguration anders als bei der aktuellsten Community Version von download.docker.com.

Konfigurationsdatei für den Docker-Daemon bearbeiten oder erstellen:

# nano /etc/docker/daemon.json

Inhalt:

{
  "bip": "192.168.0.1/24",
  "fixed-cidr": "192.168.0.0/24"
}

Anschließend muss die Container Engine neugestartet werden:

# service docker restart

Anders als bei der aktuellsten Version von Docker bekommen neue Docker Networks wieder eine IP aus dem Adressbereich 172.17.0.0/16. Damit dies nicht geschieht muss beim Erstellen von neuen Networks, stets darauf geachtet werden einen manuellen IP-Bereich festzulegen.

$ docker network create --driver=bridge --subnet=192.168.1.0/24 rrzk_anleitung

Ergebnis:

$ docker network inspect rrzk_anleitung | grep Subnet
                    "Subnet": "192.168.1.0/24"

In docker-compose.yml Dateien hat sich diese Konfiguration bewährt:

networks:
  default:
    ipam:
      driver: default
      config:
        - subnet: "192.168.1.0/24"

Den Adressbereich des Subnetzes ggf. anpassen z.B. auf “192.168.2.0/24”

Hinweis: Der Betrieb von lokalen Servern in Arbeitsplatz-Netzwerken ist unerwünscht, bitte wenden Sie sich an das RRZK für Infos und Beratung, wie Sie Ihre Serveranwendungen in einem sicheren Betrieb bei uns erstellen können.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert