Reuse containers with `docker-compose`

I’ve an app running on multiple Docker containers defined by docker-compose. Everything works fine from my user and the docker-compose ps output looks like:

       Name                Command           State     Ports
myuser_app_1    /config/   Exit 137
myuser_data_1   sh                     Exit 0
myuser_db_1     /                Exit 143

Now I’m trying to run docker-compose up with supervisord (see relevant part of supervisord.conf below) and the issue is that the containers are now named myapp_app_1, myapp_data_1 and myapp_db_1, that is they’re created from scratch and all customizations on the former containers is lost.

  • create-react-app + docker = QA and PROD Deploy
  • Docker zero downtime deployment [closed]
  • docker --tls vs --tlsverify
  • How to alter the official mongo docker for authentication and data separation?
  • How to saving a Docker container State?
  • ASP.NET Core 1.0 EF7 System.Data.SqlClient not found
  • I tried renaming the containers, but it gives an error saying that there’s already a container with that name.

    Q: Is there some way to force docker-compose reuse existing containers instead of creating new ones based in their respective images?


        -f /usr/local/app/docker-compose.yml up

  • GCE persistent disk, kubernetes, and data persistence
  • wordpress container cannot connect to mariadb container
  • Docker log without new line
  • Docker Ubuntu update-alternatives
  • TFS workspace with Jenkins Docker container
  • Is there a best practice on setting up glibc on docker alpine linux base image?
  • One Solution collect form web for “Reuse containers with `docker-compose`”

    Compose will always reuse containers as long as their config hasn’t changed.

    If you have any state in a container, you need to put that state into a volume. Containers should be ephemeral, you should be able to destroy them and recreate them at any time without losing anything.

    If you need to initialize something I would do it in the Dockerfile, so that it’s preserved in the image.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.