Skip to main content

Docker Compose

Jag använder mig av docker compose. 

Volumes

Går att konfigurera på lika olika sätt. Ex. config:/etc/dns placerar volymen i /var/lib/docker/volumes./data:/data placerar filerna i en undermapp till mappen som docker-compose.yml filen är i. Här är ett exempel på en NFS-monterad mapp:
/data/docker/audiobookshelf/audiobooks:/audiobooks

sudo docker volume ls listar alla volymer som docker känner till. inspect ger bra information om en specifik volym, ex:

jehrlander@docker-mgmt:~/docker/DnsServer$ sudo docker volume inspect dnsserver_config
[
    {
        "CreatedAt": "2024-04-18T13:54:19Z",
        "Driver": "local",
        "Labels": {
            "com.docker.compose.project": "dnsserver",
            "com.docker.compose.version": "2.20.2",
            "com.docker.compose.volume": "config"
        },
        "Mountpoint": "/var/lib/docker/volumes/dnsserver_config/_data",
        "Name": "dnsserver_config",
        "Options": null,
        "Scope": "local"
    }

För att rensa oanvända volymer, som ingen container använder, använd sudo docker system volume prune -a.

NFS-montera i container

En NFS montering sker från hosten. Man kan antingen montera NFS direkt på hosten via fstab (se den här artikeln för Ubuntu) eller så kan man montera per compose fil. Gör man det i compose-filen så blir filen mer portabel. Å andra sidan tycker jag att det skalar trevligt med att montera direkt från hosten . Jag vet inte vad som är bäst, säkerheten har jag inte rätt ut ännu.

Montera från docker compose

Här är ett exempel på en compose fil (för applikation Kiwix) där monteringen sker via compose-filen:

services:
  kiwix-serve:
      ports:
        - 8080:8080
      image: ghcr.io/kiwix/kiwix-serve:latest
      # uncomment next 4 lines to use it with local zim file in /tmp/zim
      volumes:
       - kiwix-nfs:/data
      command:
       - '*.zim'
      # uncomment next 2 lines to use it with remote zim file
      environment:
      - 'DOWNLOAD=https://download.kiwix.org/zim/wikipedia/wikipedia_en_all_maxi_2025-08.zim'
      networks:
        DOCKER_NETWORK:
          ipv4_address: 10.10.0.66

networks:
  DOCKER_NETWORK:
    name: DOCKER_NETWORK
    external: true

volumes:
  kiwix-nfs:
    driver: local
    driver_opts:
      type: nfs
      o: addr=10.0.7.50,rw,soft,nfsvers=4
      device: ":/volume1/kiwix"