Home > Blockchain >  How to find how a container was started
How to find how a container was started

Time:07-16

When accessing a remote machine I'd like to know if a container was started over docker run or docker-compose or some other means.

Is that even possible?

CodePudding user response:

Unfortunately that's impossible. You can only guess it according to some secondary properties doing docker inspect container-name.

CodePudding user response:

For investigation purposes I created the most simplest docker-compose.yml:

version: "2.4"
services:
  hello:
    image: "hello-world"

Then run it with docker-compose up

And lastly the normal way: docker run -it --name cli hello-world

So I had two stopped containers:

$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
6a8d53ff45a4        hello-world         "/hello"            9 minutes ago       Exited (0) 9 minutes ago                       cli
d54f7a2ae8b2        hello-world         "/hello"            9 minutes ago       Exited (0) 9 minutes ago                       compose_hello_1

Then I compared inspect output of both:

diff <(docker inspect cli) <(docker inspect compose_hello_1)

I found out that there are labels which compose creates:

         "Labels": {
             "com.docker.compose.config-hash": "251ebf43e00417fde81d3c53b9f3d8cd877e1beec00ebbffbc4a06c4db9c7b00",
             "com.docker.compose.container-number": "1",
             "com.docker.compose.oneoff": "False",
             "com.docker.compose.project": "compose",
             "com.docker.compose.service": "hello",
             "com.docker.compose.version": "1.24.1"
         }

Also compose use another network: "NetworkMode": "compose_default"

You should do it on your environment and try to find out differences where you can surely differentiate between launch ways.

  • Related