====== Netzwerk ======
{{tag> storage-server docker infrastructure shackoperations docker-services dockerservices }}
====== Versionen ======
| Version | Bearbeiter | Änderungsdatum | Änderungsbemerkung |
| 0.1 | hase | 11-09-2020 | Seite angelegt |
====== Docker Netzwerk ======
Dies ist eine allgemeine Beschreibung, wie an die Docker-Container im shack RZ Netzwerk gebracht wird.
===== Compose Files =====
Das aktuelle File ist in der Shackspace-Gruppe auf Gitlab.com zu finden. Siehe\\
- [[https://gitlab.com/shackspace/docker-repos/naproxen/-/blob/master/network/docker-compose.yml|| naproxen]]
- [[https://gitlab.com/shackspace/docker-repos/infra01/-/blob/master/network/docker-compose.yml|| infra01]]
Auf den Hosts müssen noch entsprechende Linux Bridges für die existierenden VLANs angelegt werden.
===== Erklärung Compose File =====
==== Version ====
version: '2.4'
Die Version muss eine 2er Version sein, 2.4 ist die aktuellste Version. In Docker-Compose Version 3 wurden diese Einstellungsmöglichkeiten bis jetzt nur im Swarm-Mode hinzugefügt.
==== networks Bereich ====
networks:
docker-vmbr100:
name: docker-vmbr100
driver: ipvlan
driver_opts:
ipvlan_mode: l2
parent: vmbr100
ipam:
config:
- subnet: 10.42.0.0/20
ip_range: 10.42.14.0/25
gateway: 10.42.0.1
Der benutzte Treiber **ipvlan** in Verbindung mit **ipvlan_mode: l2** erzeugt ein virtuelles Netzwerk, welches mit normalen Linux Bridges verglichen werden kann. Das virtuelle Netzwerk arbeitet auf OSI Layer 2, also auf der Ebene von Mac Adressen bzw. Ethernet Frames.
Es ist also im Grunde genommen ein ganz normaler "dummer" Netzwerkswitch.
Im dem Baum **ipam** werden die grundlegenden Einstellungen des Subnetzes außerhalb des Docker angegeben. Hier müssen also Gateway sowie Subnetzmaske des externen Netzes angegeben werden. Zusätzlich kann hier noch eine Range angegeben werden. Das ist ein Filter, um IP Adresssenkonflikte entgegenwirken zu können.
==== services Bereich ====
services:
dummy:
container_name: network-dep-dummy
image: williamyeh/dummy
entrypoint: ["echo", "Networks generated"]
networks:
- docker-vmbr2
- docker-vmbr100
- docker-vmbr200
- docker-internal
restart: "no"
Hier wird der folgende Docker-Container benutzt: [[https://hub.docker.com/r/williamyeh/dummy/| Docker Hub williamyeh/dummy]]
Dieser Docker Container bekommt alle Netzwerke aus dem networks-Bereich eingetragen. Dadurch werden von Docker-Compose alle Netze beim einmaligen Starten des Containers angelegt. Der Container selbst wird nur die Meldung "Networks generated" auswerfen. Dies bedingt sich durch das Überschreiben des Entrypoints auf den cli-Befehl echo.