====== Docker Engine Linux ====== ===== Installation ===== ==== Per Script ==== :!: Always check scripts before running them! sudo apt remove docker docker-engine docker.io containerd runc sudo apt purge docker docker-engine docker.io containerd runc sudo apt autoremove curl -sSL https://get.docker.com | sh ==== Manuell ==== :!: Tested with Debian 11: sudo apt remove docker docker-engine docker.io containerd runc sudo apt purge docker docker-engine docker.io containerd runc sudo apt autoremove sudo apt update sudo apt install ca-certificates curl gnupg lsb-release # add dockers gpg key sudo mkdir -m 0755 -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg # detect arch and add docker repo echo \ "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \ "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin sudo docker version && echo && echo && sudo docker compose version if gpg error: sudo chmod a+r /etc/apt/keyrings/docker.gpg sudo apt update :!: Tested with Debian 12: for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done sudo apt update sudo apt install ca-certificates curl # add dockers gpg key sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc # detect arch and add docker repo echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin sudo docker version && echo && echo && sudo docker compose version === Optional === User zu Docker-Gruppe hinzufügen usermod -aG docker username === Rasperry Pi 1 === :!: Tested with Raspbian 11 sudo apt remove docker docker-engine docker.io containerd runc sudo apt update sudo apt install ca-certificates curl gnupg lsb-release # add dockers gpg key sudo mkdir -m 0755 -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg # add docker armhf raspbian bullseye stable repo sudo echo "deb [arch=armhf signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/raspbian bullseye stable" > /etc/apt/sources.list.d/docker.list sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-ce-rootless-extras docker-buildx-plugin sudo docker version ''docker version'' Client: Docker Engine - Community Version: 23.0.2 API version: 1.42 Go version: go1.19.7 Git commit: 569dd73 Built: Mon Mar 27 16:16:08 2023 OS/Arch: linux/arm Context: default Server: Docker Engine - Community Engine: Version: 23.0.2 API version: 1.42 (minimum version 1.12) Go version: go1.19.7 Git commit: 219f21b Built: Mon Mar 27 16:16:08 2023 OS/Arch: linux/arm Experimental: false containerd: Version: 1.6.20 GitCommit: 2806fc1057397dbaeefbea0e4e17bddfbd388f38 runc: Version: 1.1.5 GitCommit: v1.1.5-0-gf19387a docker-init: Version: 0.19.0 GitCommit: de40ad0 ===== Konfiguration ===== ==== IPv6 ==== ''/etc/docker/daemon.json'' erstellen bearbeiten: { "ipv6": true, "ip6tables": true, "experimental": true, "fixed-cidr-v6": "fd66:73e8:7225:543b::/64" } ==== Rootless mode ==== https://docs.docker.com/engine/security/rootless/ ===== Befehle ===== docker start docker stop docker rm docker stop $(docker ps -a -q) docker rm $(docker ps -a -q) docker cp :/path/to/file /host/path/to/file docker ps docker container ls -a docker network ls docker network inspect docker network rm docker exec -it /bin/bash docker exec -it /bin/sh #alpine based images docker pull docker load -i docker images docker image rm docker stats () docker logs docker system prune docker system prune -a #all, not just dangling docker system prune -f #force docker system prune -a -f docker system prune --volumes /var/lib/docker/volumes/ #docker volumes https://docs.docker.com/engine/reference/commandline/docker/ ==== Format Stats ==== # sort by memory usage docker stats --no-stream --format "table {{.Name}}\t{{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.MemPerc}}\t{{.NetIO}}" | sort -k 4 -h -r https://docs.docker.com/engine/reference/commandline/stats/#format ===== Swarm ===== docker swarm init --advertise-addr 10.1.1.1 docker node ls docker node rm node02 docker swarm leave ===== Logs ===== ==== Docker Service ==== sudo journalctl -fu docker.service #systemd ==== Docker Containers ===== sudo docker logs auth 2>&1 | grep "unexpected"