Tailscale doesn't yet publish their Docker image. See their ticket.
This is adapted from their official Dockerfile.
Tailscale has published their Docker image, and later even added multi-arch images (which was the final reason for me to support this repo).
Pro-tip: here's an example docker-compose.yml
to get some equivalence to this image:
version: '3'
services:
tailscale:
restart: unless-stopped
image: tailscale/tailscale:v1.34.2
environment:
# without this, uses "--state=mem" and uses ephemeral mode
- TS_STATE_DIR=/var/lib/tailscale
- TS_SOCKET=/var/run/tailscale/tailscaled.sock
# defaults to true. ip routes don't get installed etc. maybe Tailscale isn't designed to work in a container in this manner
# because we seem to be needing quite a bunch of overrides..
- TS_USERSPACE=false
devices:
- /dev/net/tun
# TODO: reduce to individual caps
privileged: true
network_mode: host
volumes:
- /persist/apps/tailscale-state:/var/lib/tailscale
- /var/run/tailscale:/var/run/tailscale
Tailscale now pushes their official Docker image, though it's still missing ARM builds (they only publish amd64).
I'll support this repo (with ARM build) until Tailscale fixes that.
$ docker run \
-d \
--name tailscaled \
-v tailscale-state:/var/lib/tailscale \
--device /dev/net/tun \
--network host \
--privileged \
--restart unless-stopped \
fn61/tailscale:SEE_TAG_FROM_DOCKERHUB
$ docker exec -it tailscaled tailscale up