Docker & K8s在企业中常用命令—— 学会满足日常k8s集群维护

本文详细介绍了Docker和Kubernetes在企业环境中的常用命令,包括查看和管理容器、镜像,以及Kubernetes的基本操作如创建命名空间、Pod等。通过这些命令,可以帮助日常维护和管理集群变得更加轻松。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在企业应用中,docker和k8s作为服务运行在企业环境中,一些docker和k8s相关命令我们在测试或者生产环境中都会用到,我们来看一下常用的一些命令:

强烈建议收藏!!!

  • 不定期会更新和补充一部分

  • 首先我们看一下docker的一些常用命令

docker在企业中用到的命令

如,删除容器/镜像,查看容器/镜像,修改镜像标签、创建容器等等…

[ 附docker的详细文章 容器 —— Docker容器化技术理解和使用 ]

容器——详解Docker Compose

那么我们如何查看机器上有哪些容器呢?

其实很简单

查看运行容器

 docker ps -a

如图:
在这里插入图片描述

如果需要查看所有容器的话:

查看所有容器

docker ps -a
#查看所有容器

停止正在运行的所有容器

docker stop `docker ps  -a  -q`

在这里插入图片描述

docker 给镜像打tag

docker tag  镜像ID    gaha/nginx:dev
#镜像ID后面为:仓库名/容器名:标签(标签可以是分支可以是版本号)

使用 docker commit 指令,把一个正在运行的容器,直接提交为一个镜像

docker commit  容器ID 要生成的镜像名
docker tag 镜像ID Redis:latest  

企业环境中,有一些机器是无法访问外网的,那么我们可以通过将运行中的容器commit成image(上面commit命令),或者直接将需要的镜像打成tar包,再导入到其他的机器上面。

将容器的文件系统打包成tar包

docker save -o  容器ID  镜像名:tag

如图,打包好了
在这里插入图片描述

如果需要上传该tar包的镜像,那么:

上传镜像

docker load < name.tar

在这里我先删除Redis的相关镜像

docker rmi 镜像名:rag

在这里插入图片描述

然后再导入
在这里插入图片描述

导入完成 ,那么我们如何运行或者进入一个容器呢?

ps .下载镜像

docker pull nginx:1.8

在这里插入图片描述

启动/运行容器

docker run --name nginx_80  --restart=always -d -it -p 80:80 -v /var/www/:/var/www/ nginx:1.8
#启动命令 --name 指定启动名称   --restart=always保持重启参数可加可不加   -d后台 -p端口映射   -v 目录映射 最后镜像名:tag

进入一个容器:

docker exec -it 容器ID /bin/bash

如图:
在这里插入图片描述
这样可以在一个容器里进行相关操作

在这里还有两个很重要的命令 cp
1.将宿主机资源拷贝到容器中去

docker cp 要拷贝的文件路径 容器名:要拷贝到容器里面对应的路径

2.查看容器的日志

docker logs -f  容器ID
  • 延伸用法

查看某时间之后的日志:

$ docker logs -t --since="2021-06-08T13:23:37" CONTAINER_ID

查看某时间段日志:

$ docker logs -t --since="2021-06-08T13:23:37" --until "2021-06-09T12:23:37" CONTAINER_ID

查看容器详细信息

docker inspect 容器ID

慎用:

  • 如果我们本台机器不做当前业务,要做他用,那么可以删除所有容器:
 docker rm $(docker ps -a -q)
 #删除所有容器

在这里插入图片描述
上图可以看到有很多报错,是因为有很多容器正在运行状态,即running

那么我们可以添加一个参数强制删除

--force

如图:
在这里插入图片描述

同理,也可以使用另外一条命令:

docker stop $(docker ps -q) & docker rm $(docker ps -aq)

其次是删除所有镜像:

 docker rmi $(docker images -q)
  #-q查出所有id号

在这里插入图片描述

同样我们可以用build选项创建镜像持续以上步骤

docker build创建镜像

docker build -t vcc/sinatra:v2 

运行容器:
如:

 docker run -t -i vcc/sinatra:v2 /bin/bash   #前台运行直接进入
 docker run -d --name redis -p 6379:6379 redis --requirepass '123!' #运行及连接 p端口映射本机:容器,镜像名

在这里就不做示范了,一般在k8s环境,创建完pod,会有相关的pod和镜像自动运行或者生成。




接下来我们来看一下kubernetes 的一些常用命令/使用方式。

k8s在企业中的常用命令

首先,还是最基础,查看node节点,查看pod等等

在这里先附上之前的一些kubernetes学习的理论及相关技术基础

容器 & k8s——Kubernetes详解 & 集群部署 & Metrics-Server

容器 & k8s——kubernetes kubectl工具使用

k8s——kubeadm工具使用

查看node/pod…

kubectl get  [ pod node cs service secret configmap daemonset deployment..... ]  

查看pod node  健康状态等等
                    -n  指定namespaces 
                    -o wide  查看pod运行节点
                    -A  查询所有namespaces中的Pod

如:
在这里插入图片描述

那么一套新的环境,需要创建新的命名空间如何创建呢?

创建ns

kubectl create  ns   shuaine
#创建ns
kubectl get ns
#获取ns
kubectl delete ns shuaine 
#删除ns

如图示:

在这里插入图片描述

那么使用编排工具k8s如何创建pod呢?

创建pod

  • 创建并运行一个pod:
kubectl run nginx_latest --image=daocloud.io/library/nginx:latest --port=80
# 运行命令,指定运行名称  --image指定镜像可直接下载   --port 指定映射端口
kubectl create -f *.yaml
也可以撰写yaml文件直接运行

指定yaml创建运行参考文章 k8s——Kubernetes配置yaml文件详解(文章包括yaml文件的介绍,写法等等)

k8s查看容器详细信息

kubectl describe  type [pod  node  service secret  configmap .....] 
                    -n  多个ns需要指定namespaces,写法-n ns名
如 kubectl describe pod podname

删除容器

kubectl delete -f *.yaml  删除根据yaml文件创建的资源
kubectl delete pod  podname   删除pod

** k8s集群中 dashboard 密钥获取**

kubectl get secret -n kube-system |grep admin |awk '{print $1}'
kubectl  describe secret   admin-user-token-wwfb2  -n kube-system |grep '^token'|awk '{print $2}'

日常使用比较多的有:
查看deployment信息,可以查看其yaml:

kubectl describe deployment apm-democ-demoa -n springcloudtest

那么比如,我们需要临时不向某一个节点调度该如何操作呢?

k8s暂停某个节点调度

kubectl cordon node_name     #暂停
kubectl uncordon node_name   #取消暂停调度

以上就是docker和k8s的一些常用命令,get后日常维护集群不用愁


下面再补充一部分相较于以上文章总结,稍微进阶的教程:
具体参考:

k8s —— Kubernetes私服Registry&Harbor(本地镜像仓库)

k8s——Kubernetes调度之pod调度粘性

k8s——Kubernetes-RBAC基于角色的访问控制

k8s——Kubernetes配置yaml文件详解

k8s——kubernetes暴露服务

k8s——kubernetes 检查恢复机制–PodPreset

k8s——kubernetes使用rook部署ceph集群

K8s——kubernetes集群中ceph集群使用【上】

K8s——kubernetes集群中ceph集群使用【下】

k8s——kubernetes–Volumes

K8s ——Kubernetes持久化存储PV/PVC

k8s——Kubernetes部署HELM & HELM部署Prometheus

END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值