
Creating Docker Adapter Instance in vROps with vRO

vi /etc/systemd/system/multi-user.target.wants/docker.service
ExecStart=/usr/bin/docker daemon \ --containerd /run/containerd.sock --insecure-registry=192.168.5.20:5000 -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock-H bestimmt dabei, wo der Deamon lauschen soll. tcp://0.0.0.0:2375 exposed den Port auf 2375/tcp nach außen unix:///var/run/docker.sock lässt auch weiterhin den lokalen Unix-Socket laufen, sodass die CLI-Kommandos wie gewöhnlich genutzt werden können Von außen lassen sich nun entsprechende Abfragen gegen die Rest-API absetzen:
GET http://192.168.5.20:2375/containers/json POST http://192.168.5.20:2375/containers/create
In einer DEV-/Test-Umgebung kommt es häufig vor, dass die Docker Registry nur über HTTP und nicht über HTTPS verwendet wird. Die Docker Runtime geht standardmäßig davon aus, dass die Verbindung SSL verschlüsselt und das ausstellende CA-Zertifikat lokal vorhanden ist. Ist dies nicht der Fall, erhält man folgende Fehlermeldung:
root@photon01 [ ~ ]# docker run -it 192.168.5.20:5000/corp/centos7base:7.2 Unable to find image '192.168.5.20:5000/corp/centos7base:7.2' locally docker: Error response from daemon: Get https://192.168.5.20:5000/v1/_ping: tls: oversized record received with length 20527. See 'docker run --help'.
Der Docker-Daemon kennt zum Ignorieren der SSL-Verschlüsselung den Parameter –insecure-registry . Dieses lässt sich manuell beim Starten des Daemons mitgeben oder als fester Parameter für den automatischen Start festlegen. Hier ist noch zu unterscheiden ob systemd verwendet wird oder nicht. Photon setzt systemd ein, daher kann folgender Weg angewendet werden:
systemctl enable docker vi /etc/systemd/system/multi-user.target.wants/docker.service
ExecStart=/usr/bin/docker daemon \ --containerd /run/containerd.sock --insecure-registry=192.168.5.20:5000
Der Parameter –insecure-registry gibt dabei die Adresse plus den Port der privaten Docker Registry an. Sollen mehrere Registries eingetragen werden, so wird der Parameter in der oben angegeben Form mehrmals hintereinander mit je einem Server angegeben.
Nach dem Änderung durchgeführt wurde, muss die systemd-Konfiguration von der Platte neueingelesen werden:
systemctl daemon-reload systemctl restart docker
HINWEIS: Die systemd-Konfigurationsdatei könnte bei einem Update wieder überschrieben werden.
1 2 |
export SCRATCHDIR=/tmp/docker-baseimage mkdir -p ${SCRATCHDIR} |
1 2 |
mkdir -p ${SCRATCHDIR}/var/lib/rpm rpm --root ${SCRATCHDIR} --initdb |
1 |
rpm --root ${SCRATCHDIR} -ivh ftp://mirror.de.leaseweb.net/centos/7.2.1511/os/x86_64/Packages/centos-release-7-2.1511.el7.centos.2.10.x86_64.rpm |
1 |
yum -y --installroot=${SCRATCHDIR} install yum rpm |
1 2 3 4 |
chroot ${SCRATCHDIR} bash 4.2# uname -a bash 4.2# exit |
1 2 3 4 5 6 7 8 9 |
# wenn Docker auf der gleichen Maschine läuft tar -C ${SCRATCHDIR} -c . centos7-base.tar | docker import - corp/centos7base:7.2 # wenn Docker auf einer anderen Maschine läuft Maschine 1# tar -C ${SCRATCHDIR} -cf centos7-base.tar . Maschine 2# docker import centos7-base.tar corp/centos7base:7.2 # unabhängig docker push corp/centos7base:7.2 |