如何查找容器的启动方式:“docker run”或“docker-compose up”?

est*_*ani 2 containers docker docker-compose devops

当访问远程计算机时,我想知道容器是否是通过或其他方式启动docker rundocker-compose

这可能吗?

编辑:这样做的主要原因是要找出这些容器是在哪里编排的,即如果容器出现故障,是否会再次启动?该配置会在哪里?

Sla*_*sky 5

出于调查目的,我创建了最简单的 docker-compose.yml:

version: "2.4"
services:
  hello:
    image: "hello-world"
Run Code Online (Sandbox Code Playgroud)

然后运行它docker-compose up

最后是正常的方式:docker run -it --name cli hello-world

所以我有两个停止的容器:

$ 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
Run Code Online (Sandbox Code Playgroud)

然后我比较了两者的检查输出:

diff <(docker inspect cli) <(docker inspect compose_hello_1)
Run Code Online (Sandbox Code Playgroud)

我发现 compose 创建了一些标签:

             "Labels": {}
---
             "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"
             }
Run Code Online (Sandbox Code Playgroud)

还使用另一个网络进行撰写:

             "NetworkMode": "default",
---
             "NetworkMode": "compose_default",
Run Code Online (Sandbox Code Playgroud)

您应该在您的环境中执行此操作,并尝试找出可以肯定区分两种启动方式的差异。