docker-compose is starting containers after host reboot. Which ones?
Asked Answered
D

2

7

I'm new to docker-compose. Before, when I started containers manually, after a host reboot I had to start the containers manually.

Today I found that -after a host reboot- I had 4 containers running. Those were previously started with docker-compose.

But docker-compose does not work well unless you are in the proper directory with the docker-compose.yml.

Question

How can I know what docker-compose.yml or (which path) was used to launch the docker containers that I find already started as soon as I login after a reboot?

I tried

docker inspect xxxxx

but I could not find any clue on what docker-compose.yml was used to launch.

Deck answered 14/8, 2019 at 23:43 Comment(1)
Have you set restart in compose file or use docker inspect $container to see if any restart was set for these auto up containers?Herpetology
S
12

docker-compose is not starting anything.

The Docker daemon is starting containers on which you have set a restart policy (possibly in one of your docker-compose.yaml files). You can simply remove these containers (docker container rm ...) if you don't need them anymore, or you can reset the restart policy using docker container update --restart=no <image_name_or_id>.

You can read more about restart policies here.

But docker-compose does not work well unless you are in the proper directory with the docker-compose.yml.

Since docker-compose isn't involve at this stage (it may have been responsible for creating the containers but it is not responsible for restarting them), this isn't a problem. Setting an appropriate restart policy on your containers via your docker-compose.yml is the correct way to enable containers to start at boot.


You can set a restart policy when you start a container using docker run by including the appropriate --restart=<policy> option on the command line.

Samirasamisen answered 15/8, 2019 at 2:24 Comment(3)
Ahh I see, just to confirm: I could also manually start a container with docker, nothing to do with docker-compose and set a "restart policy" that will ensure the container is launched again upon reboot. Nothing to do with the compose, but with the dockerd itself. Is that true?Deck
Correct. You can set a restart policy when you start a container using docker run --restart=<policy> ....Samirasamisen
Ah, seen and tested!! I'm gonna accept the answer as "the answer", and to improve it I'd suggest you edit it to include your last comment in the answer itself.Deck
D
1

in compose file use restart: always to run after machine is rebooted

 services:   
   service1:
    image: serice1:latest
    restart: always
Demonography answered 2/1, 2023 at 11:0 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.