最实用的 Docker、Podman、Kubernetes(kubectl)常用命令速查表,
每一类都分为:👉 镜像操作、容器操作、网络与存储、系统管理、调试与排查。
🐳 一、Docker 常用命令
📦 镜像操作
| 功能 | 命令 | 说明 |
|---|
| 查看镜像 | docker images | 列出本地所有镜像 |
| 搜索镜像 | docker search nginx | 从 Docker Hub 搜索 |
| 拉取镜像 | docker pull nginx:latest | 下载镜像 |
| 构建镜像 | docker build -t myapp:1.0 . | 根据 Dockerfile 构建 |
| 删除镜像 | docker rmi myapp:1.0 | 删除镜像 |
| 导出镜像 | docker save -o myapp.tar myapp:1.0 | 导出为 tar 包 |
| 导入镜像 | docker load -i myapp.tar | 从文件导入 |
🧱 容器操作
| 功能 | 命令 | 说明 |
|---|
| 查看容器 | docker ps -a | 查看运行/停止容器 |
| 启动容器 | docker start myapp | 启动已存在容器 |
| 停止容器 | docker stop myapp | 停止运行容器 |
| 删除容器 | docker rm myapp | 删除容器 |
| 创建并运行容器 | docker run -d --name myapp -p 8080:80 nginx | 后台运行 nginx |
| 进入容器 | docker exec -it myapp /bin/bash | 进入容器交互模式 |
| 查看容器日志 | docker logs -f myapp | 持续查看日志 |
| 拷贝文件 | docker cp myapp:/var/log/nginx/access.log ./ | 从容器复制文件 |
🌐 网络与存储
| 功能 | 命令 | 说明 |
|---|
| 查看网络 | docker network ls | 列出所有网络 |
| 创建网络 | docker network create mynet | 自定义网络 |
| 挂载卷 | docker run -v /data:/app/data myapp | 挂载本地目录 |
| 查看卷 | docker volume ls | 查看卷列表 |
| 删除卷 | docker volume rm myvol | 删除卷 |
⚙️ 系统管理
| 功能 | 命令 | 说明 |
|---|
| 查看系统信息 | docker info | 查看版本、运行时信息 |
| 清理无用资源 | docker system prune -af | 删除未使用的镜像、容器、网络 |
| 查看磁盘占用 | docker system df | 查看镜像和容器大小 |
🧩 二、Podman 常用命令(Docker 的无守护进程替代)
📌 Podman 命令几乎与 Docker 一致,只需将 docker 替换为 podman。
| 功能 | 命令 | 说明 |
|---|
| 查看镜像 | podman images | 查看镜像 |
| 构建镜像 | podman build -t myapp . | 构建镜像 |
| 运行容器 | podman run -d --name web -p 8080:80 nginx | 启动容器 |
| 进入容器 | podman exec -it web /bin/bash | 进入容器 |
| 查看容器日志 | podman logs -f web | 查看日志 |
| 删除容器 | podman rm -f web | 删除容器 |
| 推送镜像 | podman push myapp:1.0 docker://ccr.ccs.tencentyun.com/myrepo/myapp:1.0 | 推送到远程仓库 |
| 生成 K8s YAML | podman generate kube myapp > myapp.yaml | 从容器生成 Kubernetes YAML |
☸️ 三、Kubernetes(kubectl)常用命令
📦 资源管理
| 功能 | 命令 | 说明 |
|---|
| 查看所有命名空间 | kubectl get ns | 查看命名空间 |
| 查看资源 | kubectl get pods,svc,deploy -n dev | 查看 Pods、Service、Deployment |
| 创建资源 | kubectl apply -f app.yaml | 创建或更新资源 |
| 删除资源 | kubectl delete -f app.yaml | 删除资源 |
| 查看 Pod 详情 | kubectl describe pod myapp-xxxx -n dev | 查看详细状态 |
| 查看 Pod 日志 | kubectl logs -f myapp-xxxx -n dev | 实时日志 |
| 进入容器 | kubectl exec -it myapp-xxxx -n dev -- /bin/bash | 进入容器 Shell |
| 查看 Deployment 状态 | kubectl rollout status deploy/myapp -n dev | 查看滚动更新进度 |
| 回滚 Deployment | kubectl rollout undo deploy/myapp -n dev | 回滚上一版本 |
⚙️ 调试与排查
| 功能 | 命令 | 说明 |
|---|
| 查看集群信息 | kubectl cluster-info | 显示 API Server 信息 |
| 查看节点状态 | kubectl get nodes -o wide | 查看节点 IP 与版本 |
| 查看事件 | kubectl get events --sort-by=.metadata.creationTimestamp | 排查异常 |
| 查看配置 | kubectl config view | 查看当前 kubeconfig |
| 切换上下文 | kubectl config use-context dev | 切换集群环境 |
| 查看 Pod 的 YAML | kubectl get pod myapp -o yaml | 查看完整定义 |
📦 资源编辑与更新
| 功能 | 命令 | 说明 |
|---|
| 修改资源 | kubectl edit deploy myapp -n dev | 在线编辑 |
| 更新镜像 | kubectl set image deploy/myapp myapp=repo/myapp:1.2 -n dev | 更新镜像 |
| 查看历史版本 | kubectl rollout history deploy/myapp -n dev | 查看更新记录 |
| 手动扩缩容 | kubectl scale deploy/myapp --replicas=5 -n dev | 动态扩容 |
🧱 存储与网络
| 功能 | 命令 | 说明 |
|---|
| 查看 Service | kubectl get svc -n dev | 查看服务 |
| 查看 Ingress | kubectl get ingress -n dev | 查看入口 |
| 查看 PVC | kubectl get pvc -n dev | 查看存储卷 |
| 查看 PV | kubectl get pv | 查看物理卷 |
🧰 四、组合命令实战示例
1️⃣ 快速调试 Pod 内环境
kubectl exec -it $(kubectl get pod -l app=myapp -n dev -o name) -n dev -- /bin/bash
2️⃣ 查看最近部署失败的日志
kubectl get events -n dev | grep Failed
3️⃣ 快速替换镜像
kubectl set image deploy/myapp myapp=ccr.ccs.tencentyun.com/demo/myapp:20251111 -n prod
4️⃣ 一键清理命名空间中所有资源
kubectl delete all --all -n test
🧩 五、命令对比速查表
| 操作 | Docker | Podman | Kubernetes |
|---|
| 查看容器 | docker ps | podman ps | kubectl get pods |
| 启动容器 | docker start | podman start | kubectl apply -f |
| 停止容器 | docker stop | podman stop | kubectl delete pod |
| 查看日志 | docker logs | podman logs | kubectl logs |
| 进入容器 | docker exec -it | podman exec -it | kubectl exec -it |
| 构建镜像 | docker build | podman build | kustomize build(可选) |
| 推送镜像 | docker push | podman push | — |
| 网络查看 | docker network ls | podman network ls | kubectl get svc |
| 存储卷查看 | docker volume ls | podman volume ls | kubectl get pvc |