fachinformatiker-wiki

it's easy when it's here

User Tools

Site Tools


docker:engine:linux

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"
This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.  More information about cookies 
docker/engine/linux.txt · Last modified: 2024/03/16 18:56 by gsys