Table of Contents

Docker Compose

https://docs.docker.com/compose/
https://github.com/docker/compose/releases/latest

Installation

Repository

sudo apt update
sudo apt install docker-compose-plugin
sudo docker compose version

Manuell

sudo curl -L "https://github.com/docker/compose/releases/download/2.6.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo docker-compose --version

Befehle

docker compose up -d
docker compose down
docker compose restart
docker compose logs
docker compose logs -f
docker compose logs --tail=10

docker compose -f docker-compose.yml -f docker-compose.geoip.yml up -d
sudo docker compose up -d && sudo docker compose logs -f

Update Project/Application

docker compose down --remove-orphans
docker compose pull
docker compose up -d

Dateien

docker-compose.yml
docker-compose.override.yml

Beispiel Configs

Nginx

docker-compose.yml
version: '3.8'
 
services:
  nginx-demo:
    image: nginx
    container_name: nginx-demo
    volumes:
      - ./data/html:/var/www/html
      - ./data/conf.d:/etc/nginx/conf.d
    expose:
      - 80
    labels:
      - 'traefik.enable=true'
      - 'traefik.http.routers.nginx-demo.rule=Host(`example.org`)'
      - 'traefik.http.routers.nginx-demo.entrypoints=https'
      - 'traefik.http.routers.nginx-demo.tls=true'
      - 'traefik.http.routers.nginx-demo.tls.certresolver=letsencrypt'
      - 'traefik.http.routers.nginx-demo.middlewares=authelia-demo@docker'
    deploy:
      restart_policy:
        condition: on-failure
    networks:
      traefik-net:
 
networks:
  traefik-net:
    external: true

Nginx proxy

docker-compose.yml
version: '2'
 
services:
  nginx-proxy:
    image: byjg/nginx-extras
    container_name: nginx-proxy
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./data/nginx.conf:/etc/nginx/nginx.conf
      - ./data/conf/:/etc/nginx/conf.d/
      - ./data/vhost:/etc/nginx/vhost.d
      - ./data/html:/usr/share/nginx/html
      - ./data/dhparam:/etc/nginx/dhparam
      - ./data/certs:/etc/nginx/certs:ro
    networks:
      proxy-net:
        aliases:
          - nginx-proxy
 
networks:
  proxy-net:
    name: proxy-net
    driver: bridge
    driver_opts:
      com.docker.network.bridge.name: br-proxy-net
    ipam:
      driver: default
      config:
        - subnet: ${IPV4_NETWORK:-172.16.2}.0/24