docker:engine:linux
Table of Contents
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
Befehle
docker start <ID/Name> docker stop <ID/Name> docker rm <ID/Name> docker stop $(docker ps -a -q) docker rm $(docker ps -a -q) docker cp <Name>:/path/to/file /host/path/to/file docker ps docker container ls -a docker network ls <ID/Name> docker network inspect <ID/Name> docker network rm <ID/Name> docker exec -it <ID/Name> /bin/bash docker exec -it <ID/Name> /bin/sh #alpine based images docker pull <imageName> docker load -i <image-name.tar.gz> docker images docker image rm <ID> docker stats (<ID/Name>) docker logs <ID/Name> 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"
docker/engine/linux.txt · Last modified: 2024/03/16 18:56 by gsys