renstur@coopnet:~/blog$ ls -lt ./topics/docker/

docker/

  1. I edited a Portainer stack's compose file on disk and it stuck

    I thought Portainer would discard compose edits made on disk, but on my install the editor just showed them. Stack files are plain files in Portainer's data volume, one folder per stack id. To apply an edit, recreate with docker compose -p set to the stack name, or you get a second project.

    services/ #portainer#docker#field-notes 3 min

  2. Outbound IPv6 for Docker containers without restarting them

    My NetBird reverse proxy logged a Docker address for every v6 visitor until I set enable_ipv6 on its own compose network. My app host got outbound v6 separately: an IPv6-only ULA network, attached live with docker network connect and declared external in compose.

    networking/ #docker#ipv6#compose 5 min

  3. My NetBird proxy relayed everything because of a Docker hairpin

    My self-hosted NetBird proxy in Docker relayed everything. Its WireGuard port was random, and STUN on the same host handed back the Docker bridge address. On v0.82.0, pinning NB_PROXY_WG_PORT and setting NB_PROXY_EXTERNAL_IP_MAP to the public IP got it direct.

    networking/ #netbird#stun#docker 4 min

  4. Splitting one Docker host into network tiers

    Every container on my Docker host shared one bridge, so any app could reach the vault, the auth database and the mail relay. I split it into six networks, internal for the databases, with a /24 address pool. Always set the Compose project name on recreate or you get empty volumes.

    networking/ #docker#security 6 min