【构造docker镜像】
1:有个jar包
chmod 777 jar包名字.jar #打开读写
2:写一个DocekrFile
FROM openjdk:11
LABEL version="1.0" # 值为 1.0 的标签
COPY jar包名字.jar /usr/playDir/ #从哪里拷贝jar包
WORKDIR /usr/playDir #工作目录
CMD ["java", "-jar", "jar包名字.jar"]
3:
3.1 在dockerfile所在的目录构建镜像:【?如何构造镜像的时候就自定义标签】
使用 -t 或 --tag 标志来指定标签名称。
docker build -t my-image:1.0 .
可以为同一个镜像指定多个标签,以便在不同的环境中使用。
docker build -t my-image:latest -t my-image:1.0 .
3.2 给现有的镜像打标签
【现有的镜像:标签】 【想要打成的标签】
docker tag slow-program-v2:latest 192.168.2.186:31002/zhangliyou/slow-program-v2:v0.0.1
4:(可选)运行该Docker镜像
docker run imageName
5:(可选)要查看在容器中运行的JAR文件输出
docker logs <container-id>
6:删除一个image
6.1 image是否正在被使用:
docker image ls
6.2
docker rmi -f <image1> <image2> <image3> ... # -f 强制删除
CMD ["java", "-jar", "modelTest-1.0-SNAPSHOT.jar"]
【创建job】
1:构造job的yaml文件
创建一个xxjob.yaml的文件
apiVersion: batch/v1
kind: Job # 类型
metadata:
namespace: <my-namespace> # 在这里添加 namespace 字段
name: slowprogram-job # job的名字
spec:
template:
spec:
containers:
- name: slowprogram-container # 自定义的container容器名字
image: slow-program:1.0 # 从哪个镜像作为启动资金
command: [ "java", "-jar", "slowProgram.jar" ] # 执行什么命令
restartPolicy: Never
👇
需要注意的是,如果指定的 Namespace 不存在,则需要先创建该 Namespace,否则 Pod 将无法成功部署。
kubectl create namespace <my-namespace> # 创建namespace【字母只能是小写 -】test-namespace
kubectl delete namespace <namespace-name>
现在是根据slow-program:1.0这个镜像,用job文件生成了一个job,
这个job的职责是将这个docker镜像运行。我现在想要实现暂停这个job的运行,有对应的命令吗
2:Job
2.1 应用job文件生成job
kubectl apply -f slowProgramjob.yaml
2.2 删除job
kubectl delete job slowprogram-job #这个是job文件里你自定义的job名字
2.3 暂停一个job
kubectl patch job <slowprogram-job> -p '{"spec":{"suspend":true}}'
# [在最后一行的 Events 中,可以看到 Normal Suspended,这表示该 Job 已经被暂停了。
此时,该 Job 所创建的 Pod 也会被暂停,因此 Pods Statuses 中的
Active 和 Ready 数量都为 0。]
2.4 恢复运行一个job
kubectl patch job <job-name> -p '{"spec":{"suspend":false}}'
4: 获取特定job的详细信息: kubectl describe job <job-name> -n <test-namespace>
获取特定pod的详细信息: kubectl describe pod <my-job-86t2d>
3:查看job和pod
3.1 查看job和pod
kubectl get jobs -A kubectl get pods -A
3.2 查看pod的日志输出
【pod的名字】 【-c表示指定容器 这个container在job文件里定义】
kubectl logs -f <slow-job-v2-dcxr8> -c slowprogram-container -n <namespace>
5: 查看job的uid
kubectl get jobs -o jsonpath='{.items[*].metadata.name}{"\t"}{.items[*].metadata.uid}{"\n"}'
6: