【问题标题】:Default command for a docker imagedocker 镜像的默认命令
【发布时间】:2021-05-14 11:16:18
【问题描述】:

如何知道容器使用基础镜像运行的默认命令,而无需实际从镜像创建新容器?

我在这里缺少一些概念吗?我正在使用基本映像编写 dockerfile,但我不知道在 CMD 部分中放置什么。

【问题讨论】:

  • 什么是基础镜像?通常你会设置CMD 来运行你自己的应用程序,但是对于提供应用程序或运行时的基础镜像(nginxtomcat),基础镜像会提供一个有用的CMD 而你不需要完全设置它。

标签: docker quay.io


【解决方案1】:

docker image inspect <IMAGE> 将为您提供更多详细信息。

例如:

$ docker pull nginx
$ docker image inspect nginx:latest
...
"0":
  "Config": {
    ...
    "Cmd": [
      "nginx",
       "-g",
       "daemon off;"
    ],
    ...
}

所以,对于 Nginx,它是 [nginx, -g, daemon off;]

或者,如果您安装了jqubuntu:20.04 的输出:

$ docker pull ubuntu:20.04
$ docker image inspect ubuntu:20.04 | jq '.[0].Config.Cmd'
[
  "/bin/bash"
]

【讨论】:

    【解决方案2】:

    您可以随时在终端上输入docker image inspect <image>,您将获得大量信息。

    我运行docker image inspect busybox(只是一些随机图像),我得到了以下结果

    [
        {
            
            "Parent": "",
            "Comment": "",
            "Created": "2021-05-04T00:19:49.531663542Z",
            "Container": "22c781af50cbbf2c31a3fb57c21d4dcfb266d6691441657088db6750d4068d22",
            "ContainerConfig": {
                "Hostname": "22c781af50cb",
                "Domainname": "",
                "User": "",
                "AttachStdin": false,
                "AttachStdout": false,
                "AttachStderr": false,
                "Tty": false,
                "OpenStdin": false,
                "StdinOnce": false,
                "Env": [
                    "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
                ],
                "Cmd": [
                    "/bin/sh",
                    "-c",
                    "#(nop) ",
                    "CMD [\"sh\"]"
                ],
                
                "Volumes": null,
                "WorkingDir": "",
                "Entrypoint": null,
                "OnBuild": null,
                "Labels": {}
            },
            "DockerVersion": "19.03.12",
            "Author": "",
            "Config": {
                "Hostname": "",
                "Domainname": "",
                "User": "",
                "AttachStdin": false,
                "AttachStdout": false,
                "AttachStderr": false,
                "Tty": false,
                "OpenStdin": false,
                "StdinOnce": false,
                "Env": [
                    "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
                ],
                "Cmd": [
                    "sh"
                ],
                
                "Volumes": null,
                "WorkingDir": "",
                "Entrypoint": null,
                "OnBuild": null,
                "Labels": null
            },
            "Architecture": "amd64",
            "Os": "linux",
            "Size": 1235829,
            "VirtualSize": 1235829,
            "GraphDriver": {
                "Data": {
          },
                "Name": "overlay2"
            },
            "RootFS": {
                "Type": "layers",
            },
            "Metadata": {
                "LastTagTime": "0001-01-01T00:00:00Z"
            }
        }
    ]
    
    

    在这里您可以看到CMD 字段

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-07
      • 2020-10-04
      • 1970-01-01
      • 2020-11-24
      • 2019-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多