5 篇文章带有标签 “command”

ConfigMap和Secret:配置应用程序

指令 解释
ENTRYPOINT 容器启动时调用的命令
CMD 传递给 ENTRYPOINT 指定命令的参数

编写 Dockerfile

FROM busybox
ADD date.sh /date.sh
RUN chmod +x /date.sh
ENTRYPOINT ["/date.sh"]
CMD ["1"]

参数默认值为 1,在运行容器可以设置参数覆盖默认值。

构建镜像

docker build -t wangjunjian/date:args .

启动镜像

$ docker run wangjunjian/date:args
Tue Aug 3 13:08:04 UTC 2021
Tue Aug 3 13:08:05 UTC 2021

设置参数覆盖默认睡眠时间

$ docker run wangjunjian/date:args 3
Tue Aug 3 13:08:46 UTC 2021
Tue Aug 3 13:08:49 UTC 2021

覆盖默认的命令

$ docker run --entrypoint=/bin/sh wangjunjian/date:args
/ # 

少量参数的设置可以使用上面的数组表示,当参数过多时可以使用下面的方式,如果参数是数值型需要使用引号。

    args:
    - str
    - "3"

Kubernetes中的Job和CronJob

tan(π/4) = 1。所以,4*atan(1)正好就是π,也就是 3.1415926…。

apiVersion: batch/v1
kind: Job
metadata:
  name: pi
spec:
  template:
    spec:
      restartPolicy: Never
      containers:
      - name: pi
        image: alpine
        command: ["sh", "-c", "echo 'scale=6000; 4*a(1)' | bc -l"]
  • restartPolicy: Pod 内所有容器的重启策略。对于 Job 重启策略只能是 OnFailure 和 Never,默认是 Always。
    • OnFailure
    • Never
    • Always(default)

运行完成后再次查看,Pod 的状态变为 Completed,不会自动删除,方便您查看日志。

$ kubectl get all
NAME           READY   STATUS      RESTARTS   AGE
pod/pi-866nk   0/1     Completed   0          11m

NAME           COMPLETIONS   DURATION   AGE
job.batch/pi   1/1           10m        11m

查看 Job 对象的描述 $ kubectl describe job pi