k8s args和command

1.介紹

Docker 與 Kubernetes 中對應的字段名稱。
k8s args和command
若是在容器配置中沒有設置 command 或者 args,那麼將使用 Docker 鏡像自帶的命令及其入參。
若是在容器配置中只設置了 command 可是沒有設置 args,那麼容器啓動時只會執行該命令,Docker 鏡像中自帶的命令及其入參會被忽略。
若是在容器配置中只設置了 args,那麼 Docker 鏡像中自帶的命令會使用該新入參做爲其執行時的入參。
若是在容器配置中同時設置了 command 與 args,那麼 Docker 鏡像中自帶的命令及其入參會被忽略。容器啓動時只會執行配置中設置的命令,並使用配置中設置的入參做爲命令的入參。html

下表涵蓋了各種設置場景:
k8s args和command
#第一個表示容器沒有定義任何的命令和參數,使用默認的鏡像命令和參數
#第二個表示容器只定義了命令,最後就使用容器的命令可是不帶參數
#第三個表示容器定義了參數,最後使用鏡像的命令,容器的參數
#第四個表示容器定義了命令和參數,最後就使用容器的命令和參數node

2.實例

apiVersion: v1
kind: Pod
metadata:
  name: ng1
  namespace: default
spec:
  nodeName: cs25
  containers:
    - name: ng1
      image: ng1
      command: [ "/bin/sh","-c" ]
      #運行的命令
      args: [ "echo '222'>/222.txt;sleep 30" ]
      #命令的參數
      imagePullPolicy: Never

k8s args和command
#登陸進去能看到在/ 目錄生成了一個222.txt 文件nginx

apiVersion: v1
kind: Pod
metadata:
  name: ng5
  namespace: default
spec:
  nodeName: cs25
  containers:
    - name: ng1
      image: ng1
      command: [ "/bin/sh","-c" ]
      #運行的命令
      args: [ "echo '555'>/555.txt;sleep 30" ]
      #命令的參數
      imagePullPolicy: Never

k8s args和command
#修改了args的參數,裏面生成的文件也不同了docker

3.實例運行兩個命令運行

apiVersion: v1
kind: Pod
metadata:
  name: ng5
  namespace: default
spec:
  nodeName: cs25
  containers:
    - name: ng1
      image: ng1
      #自定義鏡像
      command: [ "/bin/sh","-c"]
      #運行的命令
      args: [ "echo '555'>/usr/share/nginx/html/index.html; /usr/sbin/nginx -g 'daemon off;'" ]
      #先把"555" 傳遞給index文件,在在前臺啓動nginx
      imagePullPolicy: Never
      #因爲是自定義鏡像,網上沒有文件,設置只能使用本地鏡像

k8s args和command
#注意這個運行參數的最後一個必定是不能關閉的,由於bash腳本作爲pid1若是退出了,docker就不會認爲該pod已經沒法正常工做了會執行重啓策略。api

相關文章
相關標籤/搜索