Docker-Befehle in der Praxis

Docker Container können mittels Terminal-Befehle gestartet, upgedatet und verwaltet werden. In dem Beitrag notiere ich Befehle die ich bisher für Docker benötigt habe und entsprechende Beispiele dazu:  

Netzwerk erstellen

docker network create smart-home

Ein Netzwerk kann mehrere Container, die untereinander kommunizieren sollen, zusammenfassen.

Container starten

als Beispiel Conbee, siehe auch: conbee-2

 docker run -d \
   --name=deconz \
   --network=smart-home \
   -p=83:80 \
   --restart=always \
   -v /etc/localtime:/etc/localtime:ro \
   -v /docker/deCONZ/:/root/.local/share/dresden-elektronik/deCONZ \
   --device=/dev/ttyACM0 \
   -e DECONZ_DEVICE=/dev/ttyACM0 \
   marthoc/deconz

Container-Parameter: Netzwerk

Der Parameter: --net=host verbindet die Netzwerkkarte direkt.

Als Alternative kann der Paramter 

-p=Externer_Port,Port_im_Container verwendet werden:

-p=83:80 würde also dann über die IP des Rechners mit dem Port 83 aufgerufen werden können und intern im Container wird Port 80 verwendet.

Zusätzlich kann mit --network=netzwerkname ein bestimmtes zuvor mit "docker network create" erstelltes Netzwerk verwendet werden. Container innerhalb eines Netzwerkes können nicht nur über die IP, sondern auch über deren Namen (--name) aufgerufen werden: Für den Verbindungsaufbau wird dann schlicht der Name und Port des Containers verwendet.

Container anzeigen

user@rechner:/docker$ docker ps
CONTAINER ID        IMAGE                                    COMMAND                  CREATED             STATUS                    PORTS                                      NAMES
xxxxxxxxxxxx        syncthing/syncthing:latest               "/bin/entrypoint.sh …"   12 minutes ago      Up 12 minutes (healthy)                                              festive_chandrasekhar
xxxxxxxxxxxx        nginx                                    "/docker-entrypoint.…"   4 days ago          Up 12 minutes             80/tcp                                     nextcloud_webserver
xxxxxxxxxxxx        nextcloud:fpm                            "/entrypoint.sh php-…"   4 days ago          Up 12 minutes             9000/tcp                                   nextcloud_fpm
xxxxxxxxxxxx        nginx                                    "/docker-entrypoint.…"   4 days ago          Up 12 minutes             80/tcp                                     laraveldev_webserver
xxxxxxxxxxxx        mediawiki                                "docker-php-entrypoi…"   4 days ago          Up 12 minutes             80/tcp                                     mediawiki
xxxxxxxxxxxx        laravelapp.dockerfile                    "docker-php-entrypoi…"   4 days ago          Up 12 minutes             9000/tcp                                   laravelapp
xxxxxxxxxxxx        phpmyadmin/phpmyadmin                    "/docker-entrypoint.…"   4 days ago          Up 12 minutes             0.0.0.0:8081->80/tcp                       phpmyadmin
xxxxxxxxxxxx        onlyoffice/documentserver                "/bin/sh -c /app/ds/…"   4 days ago          Up 12 minutes             80/tcp, 443/tcp                            onlyoffice
xxxxxxxxxxxx        jrcs/letsencrypt-nginx-proxy-companion   "/bin/bash /app/entr…"   4 days ago          Up 12 minutes                                                        letsencrypt-companion
xxxxxxxxxxxx        mariadb                                  "docker-entrypoint.s…"   4 days ago          Up 12 minutes             3306/tcp                                   mediawikidb
xxxxxxxxxxxx        jwilder/nginx-proxy:alpine               "/app/docker-entrypo…"   4 days ago          Up 12 minutes             0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   proxy
xxxxxxxxxxxx        mariadb                                  "docker-entrypoint.s…"   4 days ago          Up 12 minutes             3306/tcp                                   db
xxxxxxxxxxxx        mariadb                                  "docker-entrypoint.s…"   4 days ago          Up 12 minutes             3306/tcp                                   laraveldb
xxxxxxxxxxxx        redis                                    "redis-server --appe…"   4 days ago          Up 12 minutes             0.0.0.0:6379->6379/tcp                     redis
xxxxxxxxxxxx        laradock_nginx                           "/bin/bash /opt/star…"   3 months ago        Up 11 minutes             0.0.0.0:90->80/tcp, 0.0.0.0:444->443/tcp   laradock_nginx_1
xxxxxxxxxxxx        laradock_php-fpm                         "docker-php-entrypoi…"   3 months ago        Up 11 minutes             9000/tcp                                   laradock_php-fpm_1
xxxxxxxxxxxx        laradock_phpmyadmin                      "/run.sh supervisord…"   3 months ago        Up 12 minutes             9000/tcp, 0.0.0.0:8082->80/tcp             laradock_phpmyadmin_1
xxxxxxxxxxxx        laradock_workspace                       "/sbin/my_init"          3 months ago        Up 12 minutes             0.0.0.0:2222->22/tcp                       laradock_workspace_1
xxxxxxxxxxxx        laradock_mariadb                         "docker-entrypoint.s…"   3 months ago        Up 12 minutes             0.0.0.0:3306->3306/tcp                     laradock_mariadb_1
xxxxxxxxxxxx        laradock_redis                           "docker-entrypoint.s…"   3 months ago        Up 12 minutes             0.0.0.0:6380->6379/tcp                     laradock_redis_1

Container stoppen

docker stop containername

alle Container stoppen

docker stop $(docker ps -a -q)

Container updaten

docker pull IMAGENAME

Container entfernen

docker rm containername

Netzwerk anzeigen

user@rechner:/docker$ docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
xxxxxxxxxxxx        docker_default      bridge              local
xxxxxxxxxxxx        host                host                local
xxxxxxxxxxxx        laradock_backend    bridge              local
xxxxxxxxxxxx        laradock_default    bridge              local
xxxxxxxxxxxx        laradock_frontend   bridge              local
xxxxxxxxxxxx        nginx-proxy         bridge              local
xxxxxxxxxxxx        none                null                local

Detail zu einem Netzwerk anzeigen

docker network inspect docker_default

Bash eines Containers aufrufen

docker exec -it containername /bin/bash

Bash Befehle innerhalb: mysql, mariadb DB-Restore

gunzip < '/daten/backup.gz' | docker exec -i laradock_mariadb_1 /usr/bin/mysql -u root --password=password dbname

Troubleshooting

Docker reagiert nicht mehr

wenn z.B. Befehle wie docker ps nicht mehr reagieren, kann der Fehler über den Befehl dockerd --debug eingegrenzt werden:

sudo dockerd --debug
INFO[2020-12-27T11:58:52.395359797+01:00] Starting up                                  
failed to start daemon: pid file found, ensure docker is not running or delete /var/run/docker.pid

Die Datei kann mit 

sudo rm /var/run/docker.pid

gelöscht werden.

failed to start daemon: error while opening volume store metadata database: timeout

Mit Hilfe folgender Befehle konnte ich Docker wieder reparieren:

Alle Docker-Prozesse stoppen:

ps axf | grep docker | grep -v grep | awk '{print "kill -9 " $1}' | sudo sh

Metadata.db löschen

sudo rm /var/lib/docker/volumes/metadata.db

Den Status anzeigen

systemctl status docker

Docker neu installieren

sudo apt-get remove docker-ce
sudo apt-get install docker-ce

Prune: nicht verwendete Daten löschen

docker system prune --volumes -f 
positive Bewertung({{pro_count}})
Beitrag bewerten:
{{percentage}} % positiv
negative Bewertung({{con_count}})

DANKE für deine Bewertung!



Fragen / Kommentare


Wir verwenden Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und die Zugriffe auf unsere Website zu analysieren. Außerdem geben wir Informationen zu Ihrer Nutzung unserer Website an unsere Partner für soziale Medien, Werbung und Analysen weiter. Details anzeigen.