guide / ports· 2026-08-15

The app is up. The Mac has nothing on :3000.

dc-up starts .devcontainer/docker-compose.yml. That file often has no 3000:3000. The app listens inside; the Mac has nothing on :3000.

dc-forward starts alpine/socat on the Docker network. Host socat172.x does not work on Colima.

dc-forward                 # compose app.ports + forwardPorts
dc-forward 3000
dc-forward --status
dc-forward --stop

dc-up runs this after a successful start. dc-down removes the sidecars.

dc-up --ports is not “add 3000”. It replaces the whole devcontainer.json.

Host port already allocated

Two projects can publish the same host port (for example both wordpress-mitm on 9001). Compose then fails.

dc-up
# dc-up: host port conflict
#   ports: 9001
#   holders:
#     d11b00f0880b  other-project-wordpress-mitm-1  compose=other
# Stop the holder(s) above and retry dc-up for this folder? [y/N]
Mode Behavior
TTY lists holder → ask y/N → stop foreign holders → retry once
dc-up --take-ports / --yes same without prompt
non-TTY without flag lists holder + how to re-run; does not stop

Stops other workspaces only. Prefer stopping a sibling stack over editing project compose ports.

Full flag table: README ports and host port conflict.

FAQ

Does Zed publish app ports?
No. Zed Dev Containers do not support forwardPorts. dc-up already runs dc-forward. Attach in Zed after that (Project: Open Remote → Connect Dev Container).

Broke something?report it