前言
本文将持续整理收集日常开发和调试用到的Docker
和Kubernetes
命令,希望对大家有用。
Docker常用命令
登陆仓库:
# 账号密码显示登陆
docker login --username xxx --password xxx nexus.pkslow.com:8081
# 密码保存在文件
docker login --username xxx --password-stdin < password.txt nexus.pkslow.com:8081
镜像管理
列出镜像:
docker images
docker images -a
拉取镜像:
docker pull grafana/grafana:4.0.0
删除镜像:
docker rmi imageId
docker rmi -f imageId
# 删除空悬镜像
docker rmi $(docker images -f "dangling=true" -q)
# 删除空悬镜像另一种形式
docker images -f "dangling=true" -q | xargs docker rmi
# 有选择地删除
docker images | grep tianchi| awk {'print $3'} | xargs docker rmi -f
通过Dockerfile创建镜像:
docker build -t pkslow/springboot:1.0.0 -f /xxx/Dockerfile /contextDir
导出镜像到文件(保留layer):
docker save -o ./pkslow.tar pkslow/springboot:1.0.0
从文件导入镜像:
docker docker load -i /opt/pkslow/pkslow.tar
导出容器到文件:
docker export containerId > ./springboot.tar
从上面文件导入镜像:
cat springboot.tar | docker import - pkslow/springboot
打新标签:
docker tag pkslow/springboot:latest nexus.pkslow.com/pkslow/springboot:3.6.6
推送镜像到远程仓库:
docker push nexus.pkslow.com/pkslow/springboot:3.6.6
容器管理
启动容器:
docker run -itd --name pkslow -p 8000:8080 -v /mylocal:/container-dir -e "SERVER_PORT=8080" pkslow/springboot:1.0.0
启动设置重启策略:
docker run --restart=always
更新容器重启策略:
docker update --restart=on-failure:10 redis
查看正在运行的容器:
docker ps
查看所有容器:
docker ps -a
查看日志:
docker logs containerId
docker logs -f containerId
到容器执行命令:
docker exec -it containerId /bin/bash
删除容器:
docker rm containerId
强制删除容器:
docker rm -f containerId
文件管理:
# 从宿主复制文件到Docker容器
docker cp pkslow/pkslow.txt 6619ff360cce:/opt/h2-data
# 从宿主复制目录到Docker容器
docker cp pkslow 6619ff360cce:/opt/h2-data
# 从容器复制文件或目录到宿主机器
docker cp 6619ff360cce:/opt/h2-data/pkslow ./
docker cp 6619ff360cce:/opt/h2-data/pkslow/pkslow.txt ./
Kubernetes常用命令
查看:
# 查看Pod
kubectl get pods
# 查看services
kubectl get services
# 查看pvc
kubectl get pvc
# 查看ConfigMap
kubectl get configmaps
# 查看Ingress
kubectl get ingress
查看扩展信息:
kubectl get pods -o wide
删除Pod:
kubectl delete pod podName
# 删除失败的Pod
kubectl get pods | grep Error | awk '{print $1}' | xargs kubectl delete pod
# 删除不在运行的Pod
kubectl delete pod --field-selector=status.phase!=Running
查看详情:
kubectl describe quota
kubectl describe pod podName
kubectl describe node docker-desktop
API方式操作资源:
# 指定文件
kubectl apply -f pkslow-springboot-deployment.yaml
# 指定目录
kubectl apply -f /opt/pkslow/k8s
查看日志:
kubectl logs podName
kubectl logs -f podName
进入Pod执行命令:
kubectl exec
指定命令空间:
kubectl get pods -n pkslow-namespace
修改默认命令空间:
kubectl config set-context --current --namespace=pkslow-namespace
命令空间基本操作:
# 查看
kubectl get namespaces
# 创建
kubectl create namespace pkslow
# 删除
kubectl delete namespace pkslow
文件管理:
# 从客户端复制文件或目录到Pod
kubectl cp pkslow.txt h2-db-5967bf999f-8qr87:/opt/h2-data
kubectl cp pkslow h2-db-5967bf999f-8qr87:/opt/h2-data
# 从Pod复制文件回来
# 目标目录要指定,与源文件类型匹配
$ kubectl cp default/h2-db-5967bf999f-8qr87:/opt/h2-data/pkslow ./pkslow
# 目标文件要指定,与源文件类型匹配
$ kubectl cp default/h2-db-5967bf999f-8qr87:/opt/h2-data/pkslow.txt ./pkslow.txt
查看集群的Resources:
kubectl api-resources
欢迎关注微信公众号<南瓜慢说>,将持续为你更新...
推荐阅读:
如何制定切实可行的计划并好好执行
容器技术(Docker-Kubernetes)
SpringBoot-Cloud相关
Https专题