# How to Start Docker Containers Automatically After a Reboot?

Docker provides restart policies to control whether your containers start
automatically when they exit, or when Docker restarts. Restart policies ensure
that linked containers are started in the correct order. Official Docker docs
recommend that you use restart policies, and avoid using process managers to
start containers.

Restart policies are different from the `--live-restore` flag of
the `dockerd` command. Using `--live-restore` allows you to keep your containers
running during a Docker upgrade, though networking and user input is
interrupted.

To configure the restart policy for a container, use the `--restart` flag when
using the `docker run` command. The value of the `--restart` flag can be any of
the following:

- `no` - Do not automatically restart the container (the default value)
- `on-failure[:max-retries]` - Restart the container if it exits due to an
  error, which manifests as a non-zero exit code. Optionally, limit the number
  of times the Docker daemon attempts to restart the container using
  the `:max-retries` option
- `always` - Always restart the container if it stops. If it is manually
  stopped, it is restarted only when Docker daemon restarts or the container
  itself is manually restarted
- `unless-stopped` - Similar to `always`, except that when the container is
  stopped (manually or otherwise), it is not restarted even after Docker daemon
  restarts

The following example starts a container and configures it to always restart
unless it is explicitly stopped or Docker is restarted:

```bash
docker run -d --restart unless-stopped container_id
```

[ad-logs]