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.