Docker and Kubernetes apps publish on Ntersection like anything else — and often more cleanly, because of one property worth understanding:
http://myapp:8080, http://api.prod.svc.cluster.local:80. No host ports, no ingress controller, no load balancer. The tunnel dials out; nothing dials in.If your container runs with -p 8080:80 (or compose ports:), it’s just an app on localhost:8080. Use any normal publish path — the one-line agent install from My Machines, or the SSH command — with upstream http://127.0.0.1:8080. Done; nothing container-specific.
Add one service to your docker-compose.yml and drop the published port entirely. Get the ready-to-paste block (with your one-time link token filled in) from Portal → My Machines → Link a machine — it looks like this:
services:
myapp:
image: your/app # no ports: needed!
ntersection-agent:
image: debian:stable-slim
restart: unless-stopped
volumes: [ "ntersection-identity:/data" ]
command: [bash, -c, "<bootstrap: download agent, enroll once, run>"]
volumes:
ntersection-identity: {}
http://myapp:8080 (the compose service name) in the portal’s publish form.Same idea at cluster scale: a one-replica Deployment (identity on a small PVC, Recreate strategy — one identity, one tunnel) that reaches every Service by cluster DNS. The manifest with your token filled in is also in My Machines:
PersistentVolumeClaim ntersection-identity (16Mi) Deployment ntersection-agent (replicas: 1, strategy: Recreate) image: debian:stable-slim args: <bootstrap: download agent, enroll once, run> volumeMounts: /data → the PVC
http://<service>.<namespace>.svc.cluster.local:<port>.→ Portal · My Machines to mint a token and get your filled-in snippets.