How to Restart a Single Container with Docker Compose

Docker Compose is a powerful tool that allows developers and system administrators to define and manage multi-container Docker applications. It simplifies managing multiple services by defining them in a single docker-compose.yml file and handling their orchestration with simple commands.

Sometimes, you may need to restart only one specific container rather than bringing down the entire stack. This situation can occur when you update configuration, want to apply code changes, or recover from a temporary container failure without disrupting the entire application.

✅ Why Restart a Single Container?

  • Apply configuration or environment variable changes.
  • Deploy updates without downtime for other services.
  • Quickly recover from a container-level issue.
  • Test changes without restarting the full application stack.

✅ Prerequisites

Make sure you have the following set up:

  • Docker installed on your machine.
  • Docker Compose installed.
  • A valid docker-compose.yml file defining your services.

✅ Step-by-Step Guide: Restarting a Single Container

1️⃣ Identify the Service Name

In your docker-compose.yml file, services are defined like this:

version: '3.8'

services:
  web:
    image: nginx
    ports:
      - "80:80"

  db:
    image: mysql
    environment:
      MYSQL_ROOT_PASSWORD: example

Here, web and db are the service names.

2️⃣ Restart the Target Service

To restart only a specific service, use the following command:

docker-compose restart <service-name>

For example, to restart the web service:

docker-compose restart web

This command stops and starts the specified container without affecting others.


3️⃣ Alternative: Using up with --no-deps

If you want to recreate the container (useful when updating configuration or images), you can use:

docker-compose up -d --no-deps --force-recreate <service-name>

Example:

docker-compose up -d --no-deps --force-recreate web
  • --no-deps ensures that dependencies are not recreated.
  • --force-recreate ensures the container is fully recreated from scratch.

✅ Check Container Status

After restarting the container, verify its status with:

docker-compose ps

This will display the current state of all services, showing which containers are up and running.


✅ Best Practices

  • Use docker-compose restart for simple restarts when no configuration changes are needed.
  • Use docker-compose up --no-deps --force-recreate when changes to images, environment variables, or volumes need to be applied.
  • Always monitor logs after restart for any errors:
docker-compose logs <service-name>

✅ Conclusion

Restarting a single container using Docker Compose is a convenient and efficient way to manage your containerized applications. It helps maintain uptime for other services while applying necessary updates or fixes to a specific service. Understanding when to restart versus when to recreate ensures smoother development and production workflows.

Sharing Is Caring:

Leave a Comment