apiVersion:v1//版本kind:pod//类型,podmetadata://元数据name:String//元数据,pod的名字namespace:String//元数据,pod的命名空间labels://元数据,标签列表-name:String//元数据,标签的名字annotations://元数据,自定义注解列表-name:String//元数据,自定义注解名字spec://pod中容器的详细定义containers://pod中的容器列表,可以有多个容器-name:Stringimage:String//容器中的镜像imagesPullPolicy:[Always|Never|IfNotPresent]//获取镜像的策略command:[String]//容器的启动命令列表(不配置的话使用镜像内部的命令)args:[String]//启动参数列表workingDir:String//容器的工作目录volumeMounts://挂载到到容器内部的存储卷设置-name:StringmountPath:StringreadOnly:booleanports://容器需要暴露的端口号列表-name:StringcontainerPort:int//容器要暴露的端口hostPort:int//容器所在主机监听的端口(容器暴露端口映射到宿主机的端口)protocol:Stringenv://容器运行前要设置的环境列表-name:Stringvalue:Stringresources://资源限制limits:cpu:Srtingmemory:Stringrequeste:cpu:Stringmemory:StringlivenessProbe://pod内容器健康检查的设置exec:command:[String]httpGet://通过httpget检查健康path:Stringport:numberhost:Stringscheme:SrtringhttpHeaders:-name:Stirngvalue:StringtcpSocket://通过tcpSocket检查健康port:numberinitialDelaySeconds:0//首次检查时间timeoutSeconds:0//检查超时时间periodSeconds:0//检查间隔时间successThreshold:0failureThreshold:0securityContext://安全配置privileged:falaerestartPolicy:[Always|Never|OnFailure]//重启策略nodeSelector:object//节点选择imagePullSecrets:-name:StringhostNetwork:false//是否使用主机网络模式,默认否volumes://在该pod上定义共享存储卷-name:StringmeptyDir:{}hostPath:path:stringsecret://类型为secret的存储卷secretName:Stringitem:-key:Stringpath:StringconfigMap://类型为configMap的存储卷name:Stringitems:-key:Stringpath:String

阅读全文

Dockerfile 有两个启动配置CMDENTRYPOINT, 可以在 Dockerfile 中来配置容器启动时自动执行的命令, 但是这二者有什么区别呢, 接下来总结如下:

首先来看一下CMD, 有三种格式的配置, 分别是:

  • CMD ["executable","param1","param2"](exec 格式, 推荐的格式)

  • CMD ["param1","param2"](作为 ENTRYPOINT 的默认参数)

  • CMD command param1 param2(shell 格式)

在使用时, 要注意一下问题

  1. 包含可执行文件时, 为容器指定默认执行命令, 这个是主要用途;

  2. 不包含可执行文件时, 必须提供ENTRYPOINT配置,CMD作为默认参数;

  3. Dockerfile 中只能有一个...

阅读全文