Docker常用命令
查看日志指定日期
docker logs -t --since="2021-05-18" 606d13dac351
进入node容器可实时查看当前运行容器负载状态
docker stats | grep -viE "disk|oss|nas|csi|POD|kube|node-exporter"
常见docker清理方法
docker system df 类似于Linux上的df命令,用于查看Docker的磁盘使用情况:
docker system prune 可以用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)。
docker system prune -a 清理得更加彻底,可以将没有容器使用Docker镜像都删掉。注意,这两个命令会把你暂时关闭的容器,以及暂时没有用到的Docker镜像都删掉了…所以使用之前一定要想清楚.。我没用过,因为会清理 没有开启的 Docker
docker中 启动所有的容器命令
docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)
docker中 关闭所有的容器命令
docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)
docker中 删除所有的容器命令
docker rm $(docker ps -a | awk '{ print $1}' | tail -n +2)
docker中 删除所有的镜像
docker rmi $(docker images | awk '{print $3}' |tail -n +2)
kubectl #####################################
#输出pod中曾经运行过,但目前已终止的容器的日志
kubectl logs -f --previous pod
-p, --previous[=false]: 如果为true,输出pod中曾经运行过,但目前已终止的容器的日志
--since=0: 仅返回相对时间范围,如5s、2m或3h,之内的日志。默认返回所有日志。只能同时使用since和since-time中的一种
--since-time="": 仅返回指定时间(RFC3339格式)之后的日志。默认返回所有日志。只能同时使用since和since-time中的一种
--tail=-1: 要显示的最新的日志条数。默认为-1,显示所有的日志
--timestamps[=false]: 在日志中包含时间戳
————————————————
可查看当前k8s集群中,指定运行的主机所有pod
kubectl get pod -A -o wide| grep -vE 'kube|moni' | grep -E "111.IP|111.IP|246.IP|111.IP"
切换上下文命名空间(kubectl get pods 如果不指定-n 默认查看kube-system 空间下pod)
kubectl config set-context --current --namespace=kube-system
查看node主机下所运行的pod容器
docker stats | grep -viE "disk|oss|nas|csi|POD|kube|node-exporter"
k8s-copy pod 到宿主机
kubectl cp -n ccc xxxxxr-6665c54954-67xdn:var/www/bin/Debug ./
查看负载
uptime | awk -F ',' '{print $4}'|awk '{print $3}'
清理 Evicted
kubectl -n monitoring get pod | grep Evicted | awk '{print $1}' | xargs kubectl delete pod -n monitoring
不允许pod调度到此node,对正在运行的pod不会驱逐
kubectl cordon n2
节点排水驱n2 node所有pod忽略daemoset
kubectl drain n2 --delete-local-data=true --ignore-daemonsets=true --force
取消污点
kubectl uncordon n2
查看node标签
kubectl get nodes --show-labels
添加node节点标签
kubectl label nodes node1 disktype=ssd
删除命名空间下指定的两个pod
kubectl -n $ns get pod | grep -iE "oscarsystem-service-|oscarsystemv3" | awk -F ' ' '{print $1}' |xargs kubectl -n $ns delete pod
删除节点标签
kubectl label nodes node1 disktype-
#####
创建pod###busybox-不太好用
kubectl -n cbc run cbc-busybox --image=harbor.cluster.com:6666/rancher/busybox:latest --port=42
kubectl run nginx --image=nginx:maxline
删除卡住无法删除的pod
kubectl delete pod podname-5c8844476b-4qtx6 -n wx --grace-period=0 --force
创建svc暴露端口
kubectl expose deploy busybox --name=busybox --port=42 --protocol=TCP
创建一个service让外界能够消费。使用命令行创建这样的一个service
kubectl expose deployment nginx --type=LoadBalancer --port=80 --target-port=80
Nodeport
kubectl expose deployment nginx --type=NodePort --port=80 --target-port=80
Pod 端口转发功能
kubectl port-forward pod/nginx-6f754dd4b9-74jdn 8080:80
看到提示信息Forwarding from 127.0.0.1:8080 -> 80, 意思是把当前主机的8080端口映射到nginx pod的80工作端口:
######
edit编辑svc修改资源
kubectl edit svc busybox
命令更新deploy image版本
kubectl set image deploy busybox busybox=harbor.cluster.com:6666/rancher/busybox:v2
回退上个版本
kubectl rollout undo deployment/busybox
kubectl rollout status deployment/busybox
版本注解在deployment加
annotations:
kubernetes.io/change-cause: "httpd.v3"
查看历史版本记录
kubectl rollout history deploy/busybox --revision=5
查看历史版本详细信息
kubectl rollout history deploy/busybox --revision=5
REVISION CHANGE-CAUSE
1 <none>
2 <none>
4 <none>
5 <none
回滚到指定的版本
kubectl rollout undo deployment/busybox --to-revision=2
rancher prestart
sh -c 'cp /nginx.conf /etc/nginx/conf.d/nginx.conf ; sed -ri "s#pod#$HOSTNAME#g" /etc/nginx/conf.d/nginx.conf'
阿里云 kubernetes Api
https://help.aliyun.com/document_detail/160530.html
grep "severity" ./* -rn
------
容器跟随服务启动 run 时添加
--restart=always
正在启动的 添加方式
docker container update--restart=always 容器名
验证方式:
docker inspect kibana|grep always
yum install -y yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce-18.09.9 docker-ce-cli-18.09.9 containerd.io -y
docker-compose 关机或者重启docker同时重启容器restart always的配置
众所周知,存粹使用docker启动的话需要加–restart=always即可实现这个功能,而使用docker-compose的话在相关服务配置下加 restart: always 就行
|