container中的command的使用
Posted yanh0606
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了container中的command的使用相关的知识,希望对你有一定的参考价值。
前面说了init容器initContainers,这主要是为应用容器做前期准备工作的,一般都会用到shell脚本,这就会用到command,这里写写command的用法。
command就是将命令在创建的容器中执行,有这些命令去完成一些工作,command用法和dockerfile中的cmd差不多, command可以单独写,也可以分成command和参数args,可以参考之前的CMD去理解,例如下面的写法都可以。
command: [‘/bin/sh‘] command: ["rm", "-fr", "/var/lib/dbs/lost+found"] command: - ‘sh‘ - ‘-c‘ - ‘DATA_SOURCE_NAME="root@(localhost:3306)/" /bin/mysqld_exporter‘ command: ["sh", "-c", "until nslookup myservice; do echo waiting for myservice; sleep 2; done;"] command: ["sh"] args: ["-c","until nslookup myservice; do echo waiting for myservice; sleep 2; done;"] livenessProbe: exec: command: - /bin/sh - -c - ‘wget -O - -q --header "Authorization: Basic `echo -n \"$RABBIT_MANAGEMENT_USER:$RABBIT_MANAGEMENT_PASSWORD\" | base64`" http://localhost:15672/api/healthchecks/node | grep -qF "\"status\":\"ok\""‘ initialDelaySeconds: .Values.livenessProbe.initialDelaySeconds periodSeconds: .Values.livenessProbe.periodSeconds
另外args还有一种写法,可以理解成args后面是一个.sh文件,command来直接执行一个脚本文件,可以写相对复杂的脚本。
command: [‘sh‘] args: - "-c" - | set -ex if [ ! -d "/opt/ShenTong/odbs/OSRDB" ];then mkdir /opt/ShenTong/odbs/ cp -r /opt/OSRDB /opt/ShenTong/odbs/ else echo "数据库文件已存在" fi
最后贴一个官方写的一个rabbitmq的完整例子
spec: - if .Values.image.pullSecrets imagePullSecrets: - range .Values.image.pullSecrets - name: . - end - end terminationGracePeriodSeconds: .Values.terminationGracePeriodSeconds securityContext: toYaml .Values.securityContext | indent 10 serviceAccountName: template "rabbitmq-ha.serviceAccountName" . initContainers: - name: bootstrap image: .Values.registry .Values.busyboxImage.repository .Values.arch : .Values.busyboxImage.tag imagePullPolicy: .Values.busyboxImage.pullPolicy command: [‘sh‘] args: - "-c" - | set -ex cp /configmap/* /etc/rabbitmq rm -f /var/lib/rabbitmq/.erlang.cookie - if .Values.forceBoot if [ -d "$RABBITMQ_MNESIA_DIR" ]; then touch "$RABBITMQ_MNESIA_DIR/force_load" fi - end env: - name: POD_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.name - name: RABBITMQ_MNESIA_DIR value: /var/lib/rabbitmq/mnesia/rabbit@$(POD_NAME). template "rabbitmq-ha.fullname" . -discovery. .Release.Namespace .svc. .Values.clusterDomain resources: toYaml .Values.initContainer.resources | indent 12 volumeMounts: - name: configmap mountPath: /configmap - name: config mountPath: /etc/rabbitmq - name: .Values.persistence.name mountPath: /var/lib/rabbitmq
以上是关于container中的command的使用的主要内容,如果未能解决你的问题,请参考以下文章
aws.push 命令未运行 .config 命令或 container_commands
oozie的shell-action中加入hive脚本命令启动执行shell同时操作hive,抛异常Container killed on request. Exit code is 143 Cont
在 .ebsextension 文件夹上运行 container_commands