containers
docker start
Starts one or more previously created or stopped containers using their existing configuration. Unlike docker run it does not create a new container.
docker start [OPTIONS] CONTAINER [CONTAINER...] Common flags
| Flag | Purpose |
|---|---|
| -a, --attach | Attach STDOUT/STDERR and forward signals |
| -i, --interactive | Attach the container's STDIN |
| --detach-keys | Override the key sequence for detaching |
Examples
docker start web Restart an existing stopped container
docker start -ai debug-shell Start and reattach to an interactive shell container
docker start $(docker ps -aq --filter status=exited) Bring every exited container back up
docker start web api Start multiple containers at once
Gotcha
start preserves the original run configuration — you cannot change ports, mounts, or env at start time; recreate with docker run for that. A crashed container with restart=no stays down until you start it.
Related commands
docker stop
Gracefully stops one or more running containers by sending SIGTERM and then SIGKILL after a timeout. Use docker kill for an immediate SIGKILL.
docker restart
Stops and then starts one or more containers, preserving their configuration. Equivalent to docker stop followed by docker start.
docker run
Creates and starts a new container from a specified image in a single step. This is the primary command for launching workloads and supports extensive configuration for networking, storage, and process control.
docker ps
Lists containers along with their status, ports, and identifiers. By default it shows only running containers unless -a is passed.
docker exec
Runs a new command inside an already running container. Commonly used for shells, debugging, or one-off maintenance tasks.
← All Docker commands · Docker vs Kubernetes · Docker vs VMs