Let’s Setup Docker on Debian
Get Debian on some Cloud Provider
Update Apt
apt-get install ca-certificates curl gnupg lsb-release
add official GPG Keys
mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg |gpg --dearmor -o /etc/apt/keyrings/docker.gpg
add Repo to Sources
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
$(lsb_release -cs) stable" |tee /etc/apt/sources.list.d/docker.list > /dev/null
install Docker Engine
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
Check Version
root@docker:~# docker version
Client: Docker Engine - Community
Version: 20.10.18
API version: 1.41
Go version: go1.18.6
Git commit: b40c2f6
Built: Thu Sep 8 23:12:08 2022
OS/Arch: linux/amd64
Context: default
Experimental: true
Docker Compose Version
root@docker:~# docker compose version
Docker Compose version v2.10.2
Install Hello World
Prepare Folders
mkdir -p /etc/docker/container/traefik
cd /etc/docker/container/traefik
Build Docker-compose
cat << 'EOF' > docker-compose.yml
services:
traefik:
image: traefik:v2.6
restart: always
command:
- "--providers.docker"
- "--providers.docker.exposedByDefault=false"
- "--providers.docker.network=traefik_web"
- "--entrypoints.http.address=:80"
- "--entrypoints.http.http.redirections.entrypoint.to=https"
- "--entrypoints.http.http.redirections.entrypoint.scheme=https"
- "--entrypoints.https.address=:443"
- "--entrypoints.https.http.tls.certResolver=le"
- "--certificatesresolvers.le.acme.tlschallenge=true"
- "[email protected]"
- "--certificatesresolvers.le.acme.storage=/letsencrypt/acme.json"
ports:
- "80:80"
- "443:443"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./letsencrypt:/letsencrypt
networks:
web:
name: traefik_web
EOF
docker compose up
docker compose ps
NAME COMMAND SERVICE STATUS PORTS
traefik-traefik-1 "/entrypoint.sh --pr…" traefik running 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp, 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp
Demo Nginx
mkdir -p /etc/docker/container/nginx-demo
cd /etc/docker/container/nginx-demo
docker-compose.yml
cat << 'EOF' > docker-compose.yml
services:
nginx:
image: nginx:1.20
labels:
- "traefik.enable=true"
- "traefik.http.routers.nginx.rule=Host(`nginx.v4.docker.noflow.ch`)"
networks:
- traefik_web
networks:
traefik_web:
external: true
EOF
Nginx up
Tail logfile
-> https://nginx.v4.docker.noflow.ch