Docker: Unterschied zwischen den Versionen

Aus
Wechseln zu: Navigation, Suche
(MQTT Mosquitto)
Zeile 909: Zeile 909:
 
  websockets_log_level 1
 
  websockets_log_level 1
 
  allow_zero_length_clientid true
 
  allow_zero_length_clientid true
 +
 +
00_ports.conf
 +
 +
001_secure.conf
 +
# Duerfen Benutzer ohne Authentifizierung den MQTT Broker nutzen? - true = ja, false = nein
 +
allow_anonymous false
 +
# Der Pfad zur Benutzer und Passwort Datei
 +
password_file /mosquitto/config/mosquitto.passwd
 +
  
 
user.acl
 
user.acl
Zeile 924: Zeile 933:
 
  topic readwrite user/#
 
  topic readwrite user/#
 
  user user3
 
  user user3
  topic readwrite user/#
+
  topic readwrite user/#nano 00
 
  user user4
 
  user user4
 
  topic readwrite user/#
 
  topic readwrite user/#

Version vom 14. Oktober 2024, 12:24 Uhr

Inhaltsverzeichnis

Docker Doku

https://docs.docker.com/

Docker Hub

https://hub.docker.com/

Play with Docker

https://labs.play-with-docker.com/
smbsoft

Docker Tutorial

https://techgoat.net/index.php?id=178
https://techgoat.net/index.php?c=docker

Grundkurs

https://jaxenter.de/einfuehrung-docker-tutorial-container-61528
https://jaxenter.de/10-wege-docker-images-zu-bauen-1-61421
https://jaxenter.de/12-docker-tipps-61328

26 Docker-Befehle mit Beispielen

https://geekflare.com/de/docker-commands/

Docker Befehle / Spickzettel

https://www.brocksi.net/docker-befehle/
https://swissarmydevops.com/containers/docker/docker-cli-cheat-sheet
https://www.docker.com/wp-content/uploads/2022/03/docker-cheat-sheet.pdf
https://dockerlux.github.io/pdf/cheat-sheet-v2.pdf

Murfman Wiki / Tools / Docker

http://notes.murfman.de/Tools/Docker

Docker auf einem Raspberry Pi installieren

https://sebastianbrosch.blog/docker-auf-einem-raspberry-pi-installieren/
sudo curl -fsSL https://get.docker.com | sh
sudo curl -fsSL https://test.docker.com | sh

sudo docker version
sudo docker info

sudo docker run hello-world

Docker einrichten unter Linux, Windows, macOS

https://www.heise.de/ct/artikel/Docker-einrichten-unter-Linux-Windows-macOS-4309355.html

Installieren unter Linux

Unter Linux gibt es nicht den einen Weg zur Docker-Installation – so, wie es auch nicht das eine Linux gibt. Die offiziellen Paketquellen der Distributionen sind meist kein geeigneter Anlaufpunkt für eine aktuelle Docker-Version. 
Docker entwickelt sich schneller weiter als die Zeitpläne der Distributionen es vorsehen.
Für Docker-Einsteiger gibt es ein bequemes Installations-Skript. Wer kein Problem damit hat, ein fremdes Skript auszuführen, kommt damit schnell zur laufenden Docker-Umgebung. Heruntergeladen wird es per Curl:

curl -fsSL https://get.docker.com -o get-docker.sh

Um sicherzugehen, dass das Skript nicht manipuliert ist, können Sie den Inhalt mit einem Texteditor öffnen. Zum Abgleich können Sie das zugehörige GitHub-Repository heranziehen. Führen Sie anschließend das Skript mit Root-Rechten aus:
sudo sh get-docker.sh
Das Skript lädt Docker herunter und installiert es. Anschließend sollten Sie den aktuellen Benutzer zur Gruppe docker hinzufügen, damit Sie auch als normaler Benutzer auf den Docker-Daemon und die laufenden Container einwirken können.
sudo usermod -aG docker $USER

Damit die Änderung wirkt, müssen Sie sich einmal ab- und wieder anmelden. Anschließend ist Docker einsatzbereit.
Wer sich nicht auf ein Skript verlassen möchte, kann die Schritte auch per Hand durchführen – für Produktivsysteme ist das der empfohlene Weg. In der Docker-Dokumentation gibt es Anleitungen für CentOS, Debian, Fedora und Ubuntu.
Docker-Compose
Für Container-Zusammenstellungen ist Docker-Compose das Mittel der Wahl. Mit diesem Programm können Sie Ihre Zusammenstellung als YAML-Datei speichern und mit dem Befehl docker compose up hochfahren. Lange Zeit war Docker-Compose eine parallel entwickelte Software neben Docker. Auf der Kommandozeile hat man es mit docker-compose (mit Bindestrich) aufgerufen. Seit 2021 hat Docker die Arbeit an einem großen Integrationsprojekt abgesschlossen und Compose als 
Subcommand in die Docker-CLI eingebaut (docker compose). Wenn Sie noch alte Anleitungen finden, können Sie den Bindestrich einfach weglassen, das neue Compose funktioniert nahezu identisch.
In Docker Desktop ist Compose bereits eingebaut und aktiviert. docker compose sollte also direkt funktionieren. Unter Linux müssen Sie es als Plugin installieren. Das gelingt mit:
mkdir -p ~/.docker/cli-plugins/
curl -SL https://github.com/docker/compose/releases/download/v2.1.0/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose
Auf dem Raspberry Pi ersetzen Sie x86_64 durch armv7. Die schlechte Nachricht: Es gibt keine URL, die immer die letzte aktuelle Version herunterlädt. Um das Plugin zu aktualisieren, müssen Sie sich auf der Release-Seite bei GitHubinformieren und die Version in der URL ersetzen.
Zum Schluss machen Sie die geladene Datei noch ausführbar:
chmod +x ~/.docker/cli-plugins/docker-compose

Wenn Sie möchten, dass alle Nutzer auf der Maschine das Plugin nutzen, ersetzen Sie beim Herunterladen und beim chmod-Befehl den Pfad ~/.docker/cli-plugins/docker-compose durch /usr/local/lib/docker/cli-plugins.

How to install and use Portainer for easy Docker container management

https://www.techrepublic.com/article/how-to-install-and-use-portainer-for-easy-docker-container-management/
sudo docker run -d  \
 --name myPortainer_9000 \
 --publish 9000:9000 \
 --volume /var/run/docker.sock:/var/run/docker.sock \
 --restart always \
 portainer/portainer
sudo docker run -d  \
 --name myPortainer_9010 \
 --publish 9010:9000 \
 --volume /var/run/docker.sock:/var/run/docker.sock \
 --restart always \
 portainer/portainer-ce

Workshop

https://www.ab-heute-programmieren.de/docker-teil-1-was-ist-docker/
https://www.ab-heute-programmieren.de/docker-teil-2-das-arbeiten-mit-containern/ 
https://www.ab-heute-programmieren.de/docker-teil-3-images/
https://www.ab-heute-programmieren.de/docker-teil-4-das-dockerfile/

commit

docker commit -m "myDebian aktuell" -a "Stefan Muehlbauer"  e45ba8fe0606c4fffab09d0776cde934a9af9cbe24c3d5d3cfb1bfcc9b7de5ed

build

docker build -t debian:smV1 .
(Dockerfile )

https://docs.docker.com/engine/reference/commandline/build/ 

run

docker run -i -t -d --hostname debian_test --name debian_test -p 9522:22 debian:smV1
https://docs.docker.com/engine/reference/commandline/run/

Debian

docker run -i -t -d --hostname debian_002 --name debian_002 -p 9122:22 debian:latest

VPN

https://mobilejazz.com/blog/setting-up-a-vpn-server-in-5-minutes-with-docker/

SSH Config

docker exec debian_002 apt-get install openssh-server -y

docker exec debian_001 service ssh status docker exec Debian_001 Service ssh start

Schimmer-Media RaspberryPi Docker Portainer

https://www.schimmer-media.de/forum/thread/3835-raspberry-pi-server-mit-portainer-smarthome-verwalten-tutorial/

Docker und VirtualBox / VMWare gleichzeitig unter Windows

https://www.guido-muehlwitz.de/2019/05/docker-und-virtualbox-vmware-gleichzeitig-unter-windows/

Über die Eingabeaufforderung (als Administrator) Hyper-V ausschalten:
bcdedit /set hypervisorlaunchtype off
Und wieder einschalten:
bcdedit /set hypervisorlaunchtype auto
Ist Hyper-V aus läuft VirtualBox (und kein Docker), ist es eingeschaltet läuft Docker (und kein VirtualBox). Beides wird (und kann) nicht parallel laufen. Windows wäre übrigens nicht Windows, wenn man an der Stelle den Rechner dann auch jedes Mal neu booten müsste. Danke dafür.

Docker Spickzettel

Zeige Docker Images an
docker ps, dockewr ps -a
Erstelle ein DockerImage
docker build
docker-cpmpose build
Starte ein Docker Image
docker run
docker-compose up -d
Stoppe ein DockerImage
docker stop
docker-compose stop
Zeige Logs zu einem DockerImage
docker logs <>
Verbinde zu DockerImage per bash
docker exec -u www-data -it <> bash
Kopiere date von local zu DockerImage
docker cp src/datei_kopieren.zip docker_image_name:/ziel_pfad
Kopiere eine Datei von deinem Docker-Image nach local
docker cp docker_image_name:/pfad_zur_datei/test.txt /local_pfad/ 
Befehl in Docker-Image ausführen ohne auf das Image zu gehen
docker exec -u www-data docker_image_name bash -c 'cd /var/www/magento/src && ./bin/magento setup:static-content:deploy de_DE'
IP-Adresse eines Docker-Images herausfinden
docker inspecht docker_image_name

Docker Volume

https://www.ionos.de/digitalguide/server/knowhow/docker-container-volumes/
https://www.modius-techblog.de/docker/docker-verwendung-von-volume/
Docker Tutorial [Teil 6 - Storage (Grundlagen)] 
https://techgoat.net/index.php?id=183
docker volume create vol1
docker volume ls
docker volume inspect vol1
[
   {
       "CreatedAt": "2021-03-17T23:56:32+01:00",
       "Driver": "local",
       "Labels": {},
       "Mountpoint": "/var/lib/docker/volumes/vol1/_data",
       "Name": "vol1",
       "Options": {},
       "Scope": "local"
   }
]

docker volume create nginx_data
docker volume inspect nginx_data
[
   {
       "CreatedAt": "2021-03-18T00:11:13+01:00",
       "Driver": "local",
       "Labels": {},
       "Mountpoint": "/var/lib/docker/volumes/nginx_data/_data",
       "Name": "nginx_data",
       "Options": {},
       "Scope": "local"
   }
]

docker run -p 5000:80 -d -ti -v nginx_data:/usr/share/nginx/html nginx

Docker Kurs Experteach

Befehle

docker info | less
docker system info
docker run hello-world
docker run --rm hello-world
docker run --name sepp hello-world
docker run --name sepp --hostname hallosepp hello-world
docker ps 
docker ps -a
docker start -i <containername>
docker container rm <containername>
docker rm <containername>
docker container rm $(docker ps -aq)
docker container prune
docker image ls
docker image inspect hello-world:latest 
docker image rm <imagename>
docker pull hello-world:latest
docker create hello-world:latest
docker start -i <containername>
docker run -it ubuntu bash
docker run -it centos:7

docker attach <running container>
strg pq
docker run -ti --name logserver -v /home/student/daten:/uebergabe ubuntu:18.04 /bin/bash
docker run -ti --name logserver2 -v /home/student/daten:/uebergabe ubuntu:18.04 /bin/bash
docker run -ti --name logserver3 -v /home/student/daten/text.txt:/text.txt ubuntu:18.04 /bin/bash
docker run -ti --name viele -v /home/student/daten/:/aadaten -v /home/student/daten/text.txt:/aadatei ubuntu:18.04 /bin/bash
docker run -ti --name viele -v /etc/passwd:/etc/passwd:ro -v /etc/group:/etc/group:ro -v /home/student/daten/:/aadaten -v /home/student/daten/text.txt:/aadatei ubuntu:18.04 /bin/bash
docker attach
docker exec
docker pause
docker unpause
docker restart
docker rename
docker start
docker stop
docker kill
docker commit willy netimage:v1
docker save netimage:v1 -o meinnetimage

Udemy Docker Bootcamp - vom Anfänger zum Profi

Installation auf Debian

Debian:
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
#Verifizieren, dass der Fingerabdruck       9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88 lautet
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
docker -v
Docker Compose
https://github.com/docker/compose/releases/
Version 1.28.5
curl -L https://github.com/docker/compose/releases/download/1.28.5/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose -v
sudo docker oder nur docker

(8) docker busybox

Container laden

docker pull busybox

Images anzeigen

docker images

Container starten

docker run busybox
docker run busybox echo "Hallo Welt 42"

Container anzeigen

docker ps
docker ps -a

container löschen

docker rm <containerid>
docker rm $(docker ps -a -q -f status=exited)
docker container prune

(9) Blick in den Container

-it
docker run -it busybox sh

(10) Ports mappen

-p
sudo docker pull nginx
sudo docker run nginx
sudo docker run -p 5000:80 nginx

(11) detached modus

-d
docker run -d -p 5000:80 nginx

(12) Zugriff auf detached container

exec
docker exec -ti <containerid> bash

attach
docker attach <containerid>
docker run -p 5000:80 -d -ti nginx
docker attach <containerid>
strg p; strg q

(13) Dateien an container übergeben

docker run -p 5000:80 -d -v source:destination nginx
docker run -p 5000:80 -d -ti -v /var/lib/docker/volumes/nginx/html/_data:/usr/share/nginx/html nginx

(13b) Volume erzeugen und verbinden

docker volume create nginx_data
docker run -p 5000:80 -d -ti -v nginx_data:/usr/share/nginx/html nginx

(14) container stoppen, löschen

docker ps
docker container ls
docker stop <containerid>
docker rm <containerid>
docker image ls
docker image rm <image>
docker image prume

(15) container automatisch starten

--restart on-failure, always, unless-stopped, never
docker run -p 5100:80 -dit --name mynginx nginx
docker run -p 5100:80 -dit --restart unless-stopped --name mynginx nginx
docker run -p 5000:80 -dit -v nginx_data:/usr/share/nginx/html --restart unless-stopped --name mynginx nginx:latest

(16) Stats

docker stats

(17) Resourcen limitieren

-m xm, --cpus=x.x
docker run -p 5100:80 -dit -m 4m --cpus="0.5" --restart unless-stopped --name mynginx nginx

(18) Logs lesen

logs
docker run -p 5100:80 -dit --restart unless-stopped --name mynginx nginx
docker attach <containerid>
docker logs <containerid>

(19) Logs in JSON Datei

docker run -p 5100:80 -dit --restart unless-stopped --log-driver json-file --log-opt=100m --log-opt max-file=100 --name mynginx nginx
sudo docker inspect -f Vorlage:.LogPath <containerid>

Aufgabe MYSQL Container exportieren

docker run --name myMYSQL_100 mysql:latest
docker run --name myMYSQL_100 -e MYSQL_ROOT_PASSWORD=myPW -p 53306:3306 -dit mysql:latest

docker exec -ti <containerID> bash

(20) Das erste Dockerfile

app.py

from flask import Flask
app = Flask(__name__)
@app.route("/")
def default():

html = "

Hello World from Flask App!

"

return html
if __name__ == "__main__":
app.run(host='0.0.0.0',port=80)
   

dockerfile
#Zgrundeliegende Image
FROM python:3.7-slim
WORKDIR /app
#Kopieren des aktuellen Verzeichnisses in /app
ADD . /app
#Installieren
RUN pip install --trusted-host pypi.python.org -r requirements.txt
#Port 80 veröffenlichen
EXPOSE 80
cmd ["python","app.py"]
app.py, Dockerfile, requirements.txt
sudo docker build -t first .
docker run -dit -p 5200:80 first

(22) Docker Hub

docker login smbsoft
docker tag first smbsoft/first:1.0
docker push smbsoft/first:1.0

(23) Environment

ENV=

(24) Python Deployment

(25) Node.js Deployment

(26) MailCow EMail Server

git clone https://github.com/mailcow/mailcow-dockerized
cd mailcow-dockerized/
./generate_config.sh
docker-compose pull
nano docker-compose.yml
sudo docker-compose up -d
admin
muhu

(27) Wordpress

docker-compose.yml

version: '3.6'
services:
   db:
       image: mysql:5.7
       volumes:
         - data_db:/var/lib/mysql
       ports:
           - 3306:3306
       restart: always
       environment:
           MYSQL_ROOT_PASSWORD: mypassword
           MYSQL_DATABASE: wordpress
           MYSQL_USER: wordpress
           MYSQL_PASSWORD: wordpress
   wordpress:
       image: wordpress:latest
       depends_on:
           - db
       ports:
           - 80:80
       restart: always
       environment:
           WORDPRESS_DB_HOST: db:3306
           WORDPRESS_DB_USER: wordpress
           WORDPRESS_DB_PASSWORD: wordpress
       volumes:
           - .wordpress/plugins:/var/www/html/wp-content/plugins
           - .wordpress/themes:/var/www/html/wp-content/themes
           - .wordpress/uploads:/var/www/html/wp-content/uploads
volumes:
   data_db:

(28) NextCloud

sudo docker pull nextcloud
sudo docker run -dit -p 8030:80 nextcloud

(29) Bonus Joomla

sudo docker pull joomla
version: '3.1'
services:
 joomla:
   image: joomla
   restart: always
   depends_on:
       - joomladb
   links:
     - joomladb:mysql
   ports:
     - 8080:80
   environment:
     JOOMLA_DB_HOST: joomladb:3306
     JOOMLA_DB_PASSWORD: example
 joomladb:
   image: mysql:5.6
   ports:
       - 3306:3306
   restart: always
   environment:
     MYSQL_ROOT_PASSWORD: example
sudo docker-compose up -d

(30) zusätzliche optionen von docker-compose

deploy:
  replicas: 3
  resources:
      limits:
          cpus: "0,5"
          memory: 200m

(31) Dateiformat docker-compose

version: '3.1'
docker-compose --version
docker --version
https://docs.docker.com/compose/compose-file/

Aufgabe 2 : Erstelle einen nginx-Server mit einer Dockerfile

(32) Was ist ein Swarm

(33) Docker Machine

uname

uname -a
uname -s
uname -m
uname --help
root@v28993:~# uname -a
Linux v28993.1blu.de 4.19.0 #1 SMP Fri Nov 20 21:47:55 MSK 2020 x86_64 GNU/Linux

root@v28993:~# uname -s
Linux

root@v28993:~# uname -m
x86_64

root@v28993:~# uname --help
Usage: uname [OPTION]...
Print certain system information.  With no OPTION, same as -s.
 -a, --all                print all information, in the following order,
                            except omit -p and -i if unknown:
 -s, --kernel-name        print the kernel name
 -n, --nodename           print the network node hostname
 -r, --kernel-release     print the kernel release
 -v, --kernel-version     print the kernel version
 -m, --machine            print the machine hardware name
 -p, --processor          print the processor type (non-portable)
 -i, --hardware-platform  print the hardware platform (non-portable)
 -o, --operating-system   print the operating system
     --help     display this help and exit
     --version  output version information and exit

Docker-machine installieren

$ curl -L https://github.com/docker/machine/releases/download/v0.16.2/docker-machine-`uname -s`-`uname -m` >/tmp/docker-machine &&
chmod +x /tmp/docker-machine &&
sudo cp /tmp/docker-machine /usr/local/bin/docker-machine
docker-machine version
base=https://github.com/docker/machine/releases/download/v0.16.2
curl -L $base/docker-machine-$(uname -s)-$(uname -m) > /tmp/docker-machine
sudo install /tmp/docker-machine /usr/local/bin/docker-machine
Arch:
sudo pacman -S docker-machine
Andere:
base=https://github.com/docker/machine/releases/download/v0.16.0
curl -L $base/docker-machine-$(uname -s)-$(uname -m) > /tmp/docker-machine
sudo install /tmp/docker-machine /usr/local/bin/docker-machine
Überprüfen der Installation:
docker-machine version
curl -L https://github.com/docker/machine/releases/download/v0.16.2/docker-machine-`uname -s`-`uname -m` >/tmp/docker-machine &&
chmod +x /tmp/docker-machine &&
sudo cp /tmp/docker-machine /usr/local/bin/docker-machine

(34) VM erstellen

VBOX installieren

sudo apt-get install nano
nano /etc/apt/sources.list
deb [arch=amd64] https://download.virtualbox.org/virtualbox/debian buster contrib
wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -
sudo apt-get update
sudo apt-get install virtualbox-6.1


sudo apt-get remove virtualbox virtualbox-5.1
sudo sh -c 'echo "deb http://download.virtualbox.org/virtualbox/debian xenial contrib" >> /etc/apt/sources.list.d/virtualbox.list'
wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add - 
wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -
sudo apt-get update
sudo apt-get install virtualbox-5.2
sudo reboot -n
sudo apt-get install linux-headers-$(uname -r)
sudo apt install build-essential
/sbin/vboxconfig

VM erstellen

sudo docker-machine create --driver virtualbox myvm1337
docker-machine create --driver virtualbox myVM001
docker-machine create --driver virtualbox myVM002
docker-machine create --driver virtualbox myVM003
docker-machine ls
docker-machine stop <vm>
docker-machine create default --virtualbox-no-vtx-check

(35) VM inspizieren

docker-machine inspect <vm>

(36) Swarm erstellen

docker-machine swarm leave --force

docker-machine swarm init
docker-machine swarm init --advertise-addr <IP>
docker-machine ssh VM "docker swarm join --token <> <IP>"
docker node ls

(38) Swarm aufräumen

docker stack rm <>

docker-machine ssh VM "docker swarm leave"
docker swarm leave -f
docker-machine ls
docker-machine stop $(docker-machine ls -q)

docker-machine rm $(docker-machine ls -q)

Insatallationen

Portainer

sudo docker run -d   --name myPortainer_9010  --publish 9010:9000  --volume /var/run/docker.sock:/var/run/docker.sock  --restart always  portainer/portainer-ce:latest
sudo docker run -d   --name myPortainer_9020  --publish 9020:9000  --volume /var/run/docker.sock:/var/run/docker.sock  --restart always  portainer/portainer-ce:latest
docker volume ls
# In der Regel werdet Ihr das bei euch so finden
"portainer_data:/data"
"Name": "portainer_data",
"Source": "/var/lib/docker/volumes/portainer_data/_data",
"Destination": "/data",

Update

docker stop myPortainer_9010
docker rm myPortainer_9010
docker pull portainer/portainer-ce:latest
sudo docker run -d   --name myPortainer_9010  --publish 9010:9000  --volume /var/run/docker.sock:/var/run/docker.sock  --restart always  portainer/portainer-ce:latest
docker pull portainer/portainer-ce:2.20.1
sudo docker run -d   --name myPortainer_9020  --publish 9020:9000  --volume /var/run/docker.sock:/var/run/docker.sock  --restart always  portainer/portainer-ce:2.20.1
docker run -d -p 8000:8000 -p 9000:9000 -p 9443:9443 \
--name=portainer \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
--restart=always \
portainer/portainer-ce:latest

InfluxDB

docker pull influxdb:1.8
https://hub.docker.com/_/influxdb
https://www.zentica-global.com/de/zentica-blog/siehe/so-installieren-sie-influxdb-telegraf-und-grafana-auf-docker-6073ac36573d4
docker run -p 8086:8086       -v influxdb:/var/lib/influxdb       influxdb:1.8 
https://www.youtube.com/watch?v=0CpHwszFjUY

Commands for influxdb container creation:
Stellen Sie zunächst sicher, dass auf dem Port 8086 nichts ausgeführt wird.
$ sudo netstat -tulpn | grep 8086
sudo docker run -d --name influxdb -p 8086:8086 -e INFLUXDB_ADMIN_USER=admin -e INFLUXDB_ADMIN_PASSWORD=my-secret-pw -v influxdb:/var/lib/influxdb influxdb:1.8
Commands to manage the database:
sudo docker exec -it influxdb bash
influx
show databases;
create database databasename
use database dbname
show measurements
INSERT cpu,host=serverA value=1
INSERT cpu,host=serverA value=2

MariaDB

https://hub.docker.com/_/mariadb
https://hub.docker.com/r/jsurf/rpi-mariadb
docker pull jsurf/rpi-mariadb
sudo docker run --name mariadb -p 3306:3306 -v /home/pi/mysql.cnf:/etc/mysql/conf.d -v mariadb://var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d jsurf/rpi-mariadb
-v /home/pi/mysql.cnf:/etc/mysql/conf.d
docker pull mariadb

Adminer

https://www.adminer.org/de/

https://hub.docker.com/_/adminer/
https://kinsta.com/de/blog/adminer/

MySQL

docker pull hypriot/rpi-mysql

https://www.youtube.com/watch?v=EG3RhQNl00o
sudo docker run --name mysql -p 3307:3306  -v /home/pi/mysql.cnf:/etc/mysql/conf.d -v mysql://var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d hypriot/rpi-mysql:latest
-v /my/custom:/etc/mysql/conf.d
-v /home/pi/mysqlcnf:/etc/mysql/conf.d
-e MYSQL_USER=user -e MYSQL_PASSWORD=userpw

Grafana

docker pull grafana/grafana
docker run -d --name=grafana -p 3000:3000 grafana/grafana
https://www.smarthome-tricks.de/dashboard-influxdb-grafana-und-iobroker/

https://www.youtube.com/watch?v=bZLXVjUJJ4Q

PHPmyAdmin

https://hub.docker.com/r/mt08/rpi-phpmyadmin

sudo docker run -d --name phpmyadmin -e PMA_ARBITRARY=1 -p 8080:80 mt08/rpi-phpmyadmin
MariaDB : 192.168.0.83:3306
MySQL : 192.168.0.83:3307

Chronograf

 sudo docker run  --name chronograf -p 8888:8888 chronograf

Gotify

https://gotify.net/
https://www.youtube.com/watch?v=LJfwis_J2pc

Uptime Kuma

https://www.youtube.com/watch?v=7-GgSoewyJg
https://hub.docker.com/r/louislam/uptime-kuma
docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1

AnalyzerXS

docker run -d --name AnalyzerXS -p 8081:8081 -v $PWD/data:/data --device=/dev/ttyUSB4 psitrax/asksinanalyzer

QNAP

Portainer

https://devarounder.de/portainer-auf-qnap-nas-installieren/
https://www.youtube.com/watch?v=PGn1VyZe3dM

Influx DB

https://hub.docker.com/_/influxdb/
docker run -p 8086:8086   --name influxdb-18-a    -v influxdb:/var/lib/influxdb       influxdb:1.8
docker run -p 8087:8086   --name influxdb-18-b    -v influxdb:/root/influxdb/data       -v $PWD/influxdb.conf:/root/influxdb/influxdb.conf       influxdb:1.8 -config /root/influxdb/influxdb.conf
docker run -p 8088:8086   --name influxdb-20a    -v influxdb:/var/lib/influxdb       influxdb:2.0


docker run -d -p 8089:8086 --name influxdb-20b -v $PWD/data:/var/lib/influxdb2 -v $PWD/config:/etc/influxdb2 -e DOCKER_INFLUXDB_INIT_MODE=setup -e DOCKER_INFLUXDB_INIT_USERNAME=admin -e DOCKER_INFLUXDB_INIT_PASSWORD=12Tango34#1 -e DOCKER_INFLUXDB_INIT_ORG=my-org -e DOCKER_INFLUXDB_INIT_RETENTION=1w influxdb:2.0

-e DOCKER_INFLUXDB_INIT_BUCKET=my-bucket
-e DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=my-super-secret-auth-token

IOBroker

https://hub.docker.com/r/iobroker/iobroker
docker run -p 8081:8081 --name iobroker-1 -v iobrokerdata1:/opt/iobroker buanet/iobroker:latest

Mosquito

https://hub.docker.com/_/eclipse-mosquitto
https://github.com/sukesh-ak/setup-mosquitto-with-docker
http://rtsdp.eu5.org/dashboard/TestMosquittoOrgDashboard.html
https://github.com/sanjeshpathak/Mosquitto-Dashboard
https://github.com/thomasnordquist/MQTT-Explorer/releases

Redis

https://hub.docker.com/_/redis

Redis Docker Image

https://smarthome.buanet.de/docker/container-images/redis/

Redis Container unter Portainer bereitstellen

https://smarthome.buanet.de/2020/12/redis-container-unter-portainer-bereitstellen/

ioBroker Docker Container mit Redis DB verbinden

https://smarthome.buanet.de/2020/12/iobroker-docker-container-mit-redis-db-verbinden/

Redis in ioBroker - Überblick

https://forum.iobroker.net/topic/26327/redis-in-iobroker-%C3%BCberblick

sudo docker run --name my-redis-container -v /data/myredis/redis.conf:/redis.conf -v /data/myredis/data:/data -p 7001:6379 --restart=always -d redis:latest --save 60 1 --loglevel warning
sudo docker run --name myRedisServer -p 5050:6379 -v redis.conf:/redis.conf --restart=always -d redis:latest --save 60 1 --loglevel warning 
sudo docker run -it --network bridge --rm redis:latest redis-cli -h myRedisServer
sudo docker run --name myRebRow --rm -ti -p 5051:5001 -d --link myRedisServer marian/rebrow

docker exec -it [ID] sh
[IP_oder_Hostname]:6379> ping
PONG
[IP_oder_Hostname]:6379> set test irgendeinwert
OK
[IP_oder_Hostname]:6379> get test
irgendeinwert
[IP_oder_Hostname]:6379> quit
OK
config get requirepass *
config set requirepass <PW>
config get requirepass 
https://github.com/marians/rebrow
docker run --name myRebRow --rm -ti -p 5051:5001 -d --link myRedisServer marian/rebrow
docker run --rm -ti -p 5001:5001 --link my-redis-container:my-redis-container marian/rebrow
Home / 192.168.1.241:7001
5.45.101.224:5050

Jenkins

docker run --name myjenkins -p 8080:8080 -p 50000:50000 -v /var/jenkins_home jenkins/jenkins

Feste IP Adresse einrichten

--net macvlan0 --ip 192.168.1.211
--net FujitsuFesteIP --ip 192.168.0.xx

MQTT Mosquitto

195.90.222.185
8085
Moquitto Config
allow_anonymous false
listener 1883
listener 9001
listener 8080 
protocol websockets
persistence true
allow_anonymous true
password_file /mosquitto/config/pwfile
persistence_file mosquitto.db
persistence_location /mosquitto/data/
log_timestamp true 
connection_messages true

mosquitto.conf
# Include Dir Pfad
include_dir /mosquitto/config/conf
# Der Pfad zur Berechtigungsdatei
acl_file /mosquitto/config/user.acl
listener 1883
listener 9001
listener 8080
protocol websockets
log_timestamp true
connection_messages true
persistence true
persistence_file mosquitto.db
persistence_location /mosquitto/data/
#log_type all
log_dest file /mosquitto/log/mosquitto.log
max_connections 20
websockets_log_level 1
allow_zero_length_clientid true
00_ports.conf
001_secure.conf
# Duerfen Benutzer ohne Authentifizierung den MQTT Broker nutzen? - true = ja, false = nein
allow_anonymous false
# Der Pfad zur Benutzer und Passwort Datei
password_file /mosquitto/config/mosquitto.passwd


user.acl

# Der Benutzer root darf alles machen
user root
topic read #
topic write #
# mqtt darf nur hier lesen und schreiben
user mqtt
topic readwrite mqtt/#
# user1 darf nur hier lesen und schreiben
user user1
topic readwrite user/#
user user2
topic readwrite user/#
user user3
topic readwrite user/#nano 00
user user4
topic readwrite user/#
user user5
topic readwrite user/#
user user6
topic readwrite user/#
# This affects all clients.
pattern write $SYS/broker/connection/%c/state


https://www.maffert.net/linux-mosquitto-mqtt-broker-installieren-einrichten-und-haerten/ 

https://www.howtoforge.de/anleitung/so-installierst-und-sicherst-du-den-mosquitto-mqtt-messaging-broker-unter-ubuntu-20-04/
https://mosquitto.org/man/mosquitto-conf-5.html
https://cedalo.com/blog/enabling-websockets-over-mqtt-with-mosquitto/
https://mosquitto.org/man/mosquitto_passwd-1.html


mqtt-Admin
https://github.com/hobbyquaker/mqtt-admin
http://195.90.222.185:8090/mqtt-admin
HiveMQ
https://github.com/hivemq/hivemq-mqtt-web-client
http://195.90.222.185:8090/hivemq/


EMQX mqttx

https://mqttx.app/
docker pull emqx/emqx:latest
docker pull emqx/emqx:5.5.1
docker run -d --name MQTTX-p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:latest
docker run -d --name MQTTX-p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:5.5.1
docker ls -a
docker container ls -a

docker exec -it CONTAINERID sh // öffnet die Shell innerhalb des Dockers
docker exec -it ee795924785c sh

mosquitto_passwd -c /mosquitto/config/mosquitto.passwd root (root)
mosquitto_passwd /mosquitto/config/mosquitto.passwd mosquitto
mosquitto_passwd /mosquitto/config/mosquitto.passwd mqtt (mqtt)
mosquitto_passwd /mosquitto/config/mosquitto.passwd user1 (user1)
mosquitto_passwd /mosquitto/config/mosquitto.passwd user2 (user2)
mosquitto_passwd /mosquitto/config/mosquitto.passwd user3 (user3)
mosquitto_passwd /mosquitto/config/mosquitto.passwd user4 (user4)
mosquitto_passwd /mosquitto/config/mosquitto.passwd user5 (user5)
mosquitto_passwd /mosquitto/config/mosquitto.passwd user6 (user6)


docker pull emqx/mqttx-web:latest
docker run -d --name mqttx-web -p 8070:80 emqx/mqttx-web:latest


https://mqttx.app/
http://195.90.222.185:8091
docker pull eclipse-mosquitto:latest

  30  cd /root
  31  mkdir mosquitto
  32  mkdir mosquitto/config
  33  mkdir mosquitto/data
  34  mkdir mosquitto/log
  39  sudo nano config/mosquitto.conf


  64  docker run -it -p 1883:1883 -p 9001:9001 --name mosquitto -v /home/mosquitto/config:/mosquitto/config -v /home/mosquitto/data:/mosquitto/data -v /home/mosquitto/log:/mosquitto/log eclipse-mosquitto
  65  docker  container ls -a
  66  docker exec -it ed088a38ccc8 sh
  67  docker  container ls -a
  68  docker exec -it ed088a38ccc8 sh
  69  history