k8s中的command和args可以覆盖docker镜像中的entrypoint和cmd。其中,k8s-command可以覆盖docker-entrypoint,k8s-args可以覆盖docker-cmd。参考Difference between Docker ENTRYPOINT and Kubernetes container spec COMMAND?
了解一下entrypoint的意义:ENTRYPOINT 入口点
很多官方镜像多会使用entrypoint,看看redis:https://github.com/docker-library/redis/blob/master/Dockerfile.template#L116C2-L117C36
===============================================
关于pod yaml中的数组缩进,k8s的官方pod yaml中不用缩进(有短横线的地方表示这是数组中的一个元素,短横线不需要缩进。):
apiVersion: v1
kind: Pod
metadata:name: nginx
spec:containers:- name: nginx // 这里没有缩进image: nginx:1.14.2ports:- containerPort: 80 // 这里没有缩进
在k8s pod yaml中,对于command和args字段缩进与不缩进的区别:不缩进加不加引号都行;缩进的话需要加上引号才行,否则会报错。
| |
注意上面command中的init.sh必须写绝对路径,而且是可执行文件。
chmod a+x init.sh
chmod 755 init.sh
===============================================
k8s pod yaml找不到本地镜像?看看这个:Pull a local image to run a pod in Kubernetes
执行一下
eval $(minikube docker-env)
重新构建镜像。