Schlagwort: Docker

Docker per Curl steuern

Den Docker Deamon Prozess kann man nicht nur per Docker Client sondern auch mit Curl über die Socket oder HTTP steuern.

Wir brauchen die Programme curl und jq für die Verarbeitung von Json.

apt install curl jq

Der Docker Prozess ist im Standard per Socket erreichbar, kann aber auch per HTTP kommunizieren.

Das Kommando docker version kann man auch so anzeigen.

curl --unix-socket /var/run/docker.sock http://localhost/version

Weiterlesen

Docker compose Plugin

Docker-Compose war früher eine extra Anwendung, jetzt ist es ein Plugin von Docker.

Es wird nicht automatisch mit Docker installiert, sondern muss extra installiert werden.

sudo apt install docker-compose-plugin

Das alte Docker-Compose sollte man entfernen.

sudo apt purge docker-compose

Der alte Programmaufruf lautet: docker-compose up

Man entfernt das Minus zwischen Docker und Compose und der Aufruf ist fast gleich.

docker compose up

Ein Beispiel für Compose finden Sie in der Dokumentation.

Docker Compose als Container verwenden

Docker Compose kann man auf unterschiedlichen Wegen installieren.

Seit Ubuntu 16.04 (xenial) ist das Paket enthalten und kann direkt installiert werden.

sudo apt install docker-compose

Es gibt jedoch auch ein Docker Image von Compose.

docker pull docker/compose

Gestartet wird Compose im dem Parameter version.

docker run docker/compose version

Der Start von docker-compose up von Datei docker-compose.yml ist so nicht möglich.

Dazu braucht es noch eine Mount zum Docker Socket und zum aktuellen Verzeichnis.

docker run --rm \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v "$PWD:$PWD" \
    -w="$PWD" \
    docker/compose up

Mit einem Alias kann man docker-compose up normal verwenden.

echo alias docker-compose="'"'docker run --rm \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v "$PWD:$PWD" \
    -w="$PWD" \
    docker/compose'"'" >> ~/.bash_aliases

Quelle: Docker Compose Install

Check_mk im Docker Container

Es gibt von Check_mk RAW eine offizielle Version auf dem Docker Hub.

Die Installation von Check_mk ist damit sehr einfach.

sudo docker container run -dit -p 8080:5000 --name monitoring \
-v /omd/sites -v /etc/localtime:/etc/localtime \
-e CMK_SITE_ID=mysite -e MAIL_RELAY_HOST='mailrelay.mydomain.com' \
--restart always checkmk/check-mk-raw:1.6.0-latest

Das Kennwort für den Zugang wird automatisch generiert. Zu sehen ist es in den Logs.

sudo docker logs monitoring

Mit dem Benutzer und Kennwort kann man sich zu Check_mk verbinden.

http://localhost:8080/mysite/check_mk/

Das Image basiert auf Debian. Das kann man im Container überprüfen.

sudo docker exec -it monitoring bash

Auf der CheckMK Seite kann man sich das Docker Image auch laden.

wget https://checkmk.com/support/1.6.0p9/check-mk-raw-docker-1.6.0p9.tar.gz

Nach dem Download wird das Image in Docker geladen.

sudo docker load -i check-mk-raw-docker-1.6.0p9.tar.gz

Das Docker Image hat den Namen „checkmk/check-mk-raw:1.6.0p9“ und entspricht dem Image vom Docker Hub.

Weitere Informationen gibt es auf den offiziellen Seiten.

Quelle: Docker Hub, Mathias Kettner, CMD Docker

Docker mit Cockpit steuern

Mit dem Cockpit hat man die Möglichkeit, die Auslastung eines Server zu prüfen. Über zusätzliche Module kann man auch Docker steuern.

Der Cockpit ist Teil von Ubuntu 18.04 (bionic).

sudo apt install -t bionic-backports cockpit cockpit-docker

Damit der Benutzer „USER“ auch Zugriff auf Docker erhält, muss er in die Gruppe von Docker hinzugefügt werden.

sudo usermod -aG docker USER

Der Zugriff auf das Cockpit erfolgt per Internet unter Port 9090.

http://localhost:9090/

Quelle: UbuntuBackports

Docker mit Proxy

Kommt Docker in einer Umgebung mit HTTP Proxy Server zum Einsatz, so muss der Proxy vor dem Start von Docker in den Umgebungsvariablen gesetzt werden.

Dazu erweitern wir Systemd von Docker um ein Drop-In.

Wir legen ein Verzeichnis an in dem das Drop-In hinterlegt werden soll.

sudo mkdir /etc/systemd/system/docker.service.d

Wir erzeugen eine Drop-In für die Proxy Einstellungen.

sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf

[Service]
Environment="HTTP_PROXY=http://otto:pass123@proxy-server:8080/"

Der Aufbau von der Proxy URL lautet http://[user]:[password]@[hostname]:[port]/.

Diese Werte können gesetzt werden.

HTTP_PROXY „http://127.0.0.1:8080“
HTTPS_PROXY „https://127.0.0.1:8080“
NO_PROXY „*.test.example,*.example“

Microsoft SQL Server 2017 in Docker

In diesem Artikel geht es um den neuen Microsoft SQL Server 2017 Linux für Docker.

Natürlich kann man auch MS SQL 2017 direkt unter Ubuntu installieren. Microsoft stellt dafür die Pakete und Docker Images auf dem Docker HUB bereit.

Als minimale Vorraussetzung wird auf der Festplatten rund 4GB Speicherplatz und 4GB RAM benötigt. Eine laufende Docker Installation setzten wir vorraus.

In den allgemeinen Docker Image von Microsoft sind unterschiedliche SQL Editionen verein. Über einen Docker Parameter wird die jeweilige Edition gesetzt.

SQL Developer edition -> MSSQL_PID=Express
SQL Express edition -> MSSQL_PID=Developer

Mit „docker pull“ starten wir den Download von dem Microsoft SQL Server 2017 vom Docker Hub. Im Anschluss erzeugen wir mit „docker run“ eine laufende SQL Express Instanz am Netzwerkport 1433. Unsere Datenbank soll nicht im Docker Container gespeichert werden, sondern im Verzeichnis /my/data/. Das erleichter spätere Updates vom Container. Das Kennword für den Benutzer „SA“ kann natürlich individuell gestalltet werden.

sudo docker pull microsoft/mssql-server-linux
sudo docker run --name mssql1 -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=KennW@rt1' -e 'MSSQL_PID=Express' -p 1433:1433 -v /my/data:/var/opt/mssql/data -d microsoft/mssql-server-linux:2017-latest
sudo docker ps -a

Damit ist die Installation schon abgeschlossen. Jetzt können wir uns per Kommandozeile auf die Datenbank verbinden.

sudo docker exec -it mssql1 /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P 'KennW@rt1'

Als Beispiel erzeugen wir die Datenbank „TestDB“ mit der Tabelle „Inventory“ und zwei Datensätzen. Per SQL Kommando kann man auch das Kennwort von Benutzer „SA“ ändern.

CREATE DATABASE TestDB
GO
USE TestDB
CREATE TABLE Inventory(ID INT, Name NVARCHAR(50), Quantity INT)
GO
INSERT INTO Inventory VALUES (1, 'banana', 25);
INSERT INTO Inventory VALUES (2, 'orange', 14);
SELECT * FROM Inventory WHERE quantity > 15;
GO
ALTER LOGIN SA WITH PASSWORD='Neues!Kennwort'
GO
QUIT

Microsoft stellt das SQL Server Management Studio Version 17 für Windows als grafisches Tool bereit. Die IDE ist sehr Umfangreich und setzt viele Resourcen vorraus.

Eine alternative IDE stellt HeidiSQL dar.

Update von MySQL image in Docker

Wir wollen in Docker ein MySQL container auf die letzte Verion updaten. Wichtig dafür ist, das unsere Daten nicht in dem Container gespeichert werden, sondern auf dem Host im Verzeichnis /my/data/

1. Letzte MySQL Version hinzufügen

docker pull mysql:latest

2. Container stoppen

docker stop mysql1

3. Container löschen

docker rm mysql1

4. Neuen Container erstellen

docker run --name=mysql1 --restart=always -e MYSQL_ROOT_PASSWORD=mypwd -v /my/data:/var/lib/mysql -d mysql

Will man sich mit dem Container verbinden, dann verwendet man…

docker exec -it mysql1 bash

…oder man öffnet das MySQL Kommando.

docker exec -it mysql1 mysql -u root -p'mypwd'

Backup aller Datenbanken erstellen.

docker exec mysql1 sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' | gzip > /home/user/all-databases.sql.gz

MySQL im Docker HUB

Docker update Guacamole image

1. Update Guacamole images

sudo docker pull glyptodon/guacd:latest
sudo docker pull glyptodon/guacamole:latest

2. Remove old container

sudo docker rm some-guacd
sudo docker rm some-guacamole

3. Recreate new Guacamole container

sudo docker run --name some-guacd -d -p 4822:4822 glyptodon/guacd

sudo docker run --name some-guacamole --link some-guacd:guacd \
--link some-mysql:mysql \
-e MYSQL_DATABASE=guacamole_db \
-e MYSQL_USER=guacamole_user \
-e MYSQL_PASSWORD=some_password \
-d -p 8080:8080 glyptodon/guacamole

4. Copy the SQL update script from Guacamole container to host

docker cp some-guacamole:/opt/guacamole/mysql/schema/upgrade/upgrade-pre-0.9.8.sql .

5. Copy it into Docker MySQL container directory /tmp/

docker cp upgrade-pre-0.9.8.sql some-mysql:/tmp

6. Go into Docker MySQL container and import it into database

sudo docker exec -it some-mysql bash
mysql -u root -p guacamole_db < /tmp/upgrade-pre-0.9.8.sql

Weitere Informationen für die Installation: guac-dev.org/doc/

Copyright © 2024 Weiter.info

Theme von Anders Norén↑ ↑