I’m following a guide on youtube on how to set up Wireguard in docker compose so I can access my server outside my home network. When I start the container, it’s supposed to create a config directory but when I ls, theres no config directory. Can somebody help me out? Here’s the docker-compose.yml.
version: "2.1" services: wireguard: image: linuxserver/wireguard container_name: wireguard cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Asia/Singapore - SERVERURL=auto #optional - SERVERPORT=51820 #optional - PEERS=1 #optional - PEERDNS=auto #optional - INTERNAL_SUBNET=10.13.13.0 #optional volumes: - /opt/wireguard-server/config:/config - /lib/modules:/lib/modules ports: - 51820:51820/udp sysctls: - net.ipv4.conf.all.src_valid_mark=1 restart: unless-stopped
I’m not a docker pro, so I may be wrong…
It looks to me like your syntax is formatted as if you’re assigning an external bind mount, not a volume.
IIRC, volume mounts are
<name>:<path_inside_container>
, and docker will automatically pre-pend the service name to the vol name (e. g./opt/docker/volumes/wireguard-<name>
)So, you could try something like:
volumes: - wireguard-server-config:/config - wireguard-modules:/lib/modules
ref: https://docs.docker.com/engine/storage/volumes/#use-a-volume-with-docker-compose