4.2.3 自定义运行的容器化应用

由 Docker 镜像启动容器时运行的应用程序在相应的 Dockerfile 中由 ENTRYPOINT 指令进行定义,传递给程序的参数则通过 CMD 指令指定,ENTRYPOINT 指令不存在时,CMD 可用于同时指定程序及其参数。例如,在某工作节点上运行下面的命令获取 ikubernetes/myapp:v1 镜像中定义的 CMD 和 ENTRYPOINT,命令如下:

**[terminal]
**[delimiter $ ]**[command docker inspect ikubernetes/myapp:v1 -f {{.Config.Cmd}}]
[nginx -g daemon off;]
**[delimiter $ ]**[command docker inspect ikubernetes/myapp:v1 -f {{.Config.Entrypoint}}]
[]

容器的 command 字段能够指定不同于镜像默认运行的应用程序,并且可以同时使用 args 字段进行参数传递,它们将覆盖镜像中定义的程序及参数,并以无参数方式运行应用程序。例如下面的资源清单文件将镜像 ikubernetes/myapp:v1 的默认应用程序修改为了 “/bin/sh”,传递应用的参数修改为了 “-c while true; do sleep 30; done”:

apiVersion: v1
kind: Pod
metadata:
    name: pod-with-custom-command
spec:
    containers:
    - name: myapp
      image: alpine:latest
      command: ["/bin/sh"]
      args: ["-c", "while true; do sleep 30; done"]

自定义args,也是向容器中的应用程序传递配置信息的常用方式之一,对于非云原生(cloud native)的应用程序,这几乎也是最简单的配置方式。另一个常用的方式是使用环境变量。

results matching ""

    No results matching ""