0
0
Dockerdevops~5 mins

Starting and stopping containers in Docker - Commands & Configuration

Choose your learning style9 modes available
Introduction
Sometimes you need to run software inside containers and later stop them when not needed. Starting and stopping containers lets you control when your apps are running without changing their setup.
When you want to launch a web server container to test your website locally.
When you need to stop a database container to save system resources.
When you want to restart a container to apply new environment settings.
When you want to pause work and stop containers without deleting them.
When you want to check which containers are running before starting new ones.
Commands
This command starts a new container named 'my-nginx' running the nginx web server in detached mode, mapping port 8080 on your computer to port 80 in the container.
Terminal
docker run -d --name my-nginx -p 8080:80 nginx:1.23.3
Expected OutputExpected
a1b2c3d4e5f67890123456789abcdef0123456789abcdef0123456789abcdef0
-d - Run container in background (detached mode)
--name - Assign a custom name to the container
-p - Map host port to container port
This command lists all currently running containers so you can see that 'my-nginx' is active.
Terminal
docker ps
Expected OutputExpected
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a1b2c3d4e5f6 nginx:1.23.3 "/docker-entrypoint.…" 10 seconds ago Up 9 seconds 0.0.0.0:8080->80/tcp my-nginx
This command stops the running container named 'my-nginx' safely, allowing it to finish current tasks before shutting down.
Terminal
docker stop my-nginx
Expected OutputExpected
my-nginx
Running this again shows no running containers, confirming 'my-nginx' has stopped.
Terminal
docker ps
Expected OutputExpected
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
This command restarts the stopped container named 'my-nginx' so it runs again with the same settings.
Terminal
docker start my-nginx
Expected OutputExpected
my-nginx
Check again to confirm 'my-nginx' is running after the restart.
Terminal
docker ps
Expected OutputExpected
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a1b2c3d4e5f6 nginx:1.23.3 "/docker-entrypoint.…" 2 minutes ago Up 2 seconds 0.0.0.0:8080->80/tcp my-nginx
Key Concept

If you remember nothing else from this pattern, remember: use 'docker run' to start new containers, 'docker stop' to stop them safely, and 'docker start' to restart stopped containers.

Common Mistakes
Trying to start a container with 'docker run' when it already exists.
This creates a new container instead of restarting the existing one, causing duplicates and confusion.
Use 'docker start <container-name>' to restart an existing stopped container.
Using 'docker stop' without checking running containers first.
You might try to stop a container that is not running, causing an error.
Run 'docker ps' to list running containers before stopping.
Not using the '-d' flag with 'docker run' when you want the container to run in the background.
The container runs in the foreground and blocks your terminal until stopped.
Add '-d' to run the container detached in the background.
Summary
Use 'docker run -d --name my-nginx -p 8080:80 nginx:1.23.3' to start a new container in the background.
Check running containers with 'docker ps' to see active containers.
Stop containers safely with 'docker stop my-nginx' and restart them with 'docker start my-nginx'.