Docker 命令集合
1. 系统信息查看命令
命令格式:
docker version |
功能说明:
docker version: 查看Docker客户端和服务器的版本信息docker info: 显示Docker系统详细信息,包括容器、镜像数量,存储驱动,网络配置等
使用场景:
- 检查Docker安装是否成功
- 查看Docker版本及系统配置
- 排查Docker相关问题时获取系统信息
2. 镜像管理命令
命令格式:
docker images # 列出本地镜像 |
功能说明:
docker images: 列出本地所有镜像docker pull: 从仓库下载镜像docker search: 在Docker Hub搜索镜像docker rmi: 删除本地镜像docker commit: 从容器创建新镜像docker save/load: 镜像的导入导出docker build: 从Dockerfile构建镜像
使用场景:
- 下载和管理Docker镜像
- 构建和分享自定义镜像
- 镜像的备份和迁移
3. 容器管理命令
命令格式:
docker run [OPTIONS] <镜像名> [命令] # 运行容器 |
功能说明:
docker run: 创建并运行容器docker ps: 列出正在运行的容器,-a显示所有容器docker start/stop/restart: 容器的基本操作docker kill: 立即终止容器docker rm: 删除已停止的容器docker pause/unpause: 暂停/恢复容器
使用场景:
- 启动、停止和管理容器
- 部署和运行应用程序
- 容器生命周期管理
4. 容器交互命令
命令格式:
docker exec [OPTIONS] <容器ID或名称> <命令> |
功能说明:
docker exec: 在运行的容器中执行命令docker attach: 连接到正在运行的容器docker logs: 查看容器日志docker top: 显示容器内的进程docker stats: 实时监控容器资源使用
使用场景:
- 进入容器内部进行调试
- 查看容器运行状态和日志
- 监控容器内进程和资源使用
5. 网络和存储命令
命令格式:
docker network ls |
功能说明:
docker network: 管理Docker网络docker volume: 管理Docker数据卷docker volume prune: 清理未使用的卷
使用场景:
- 创建和管理容器网络
- 数据持久化存储
- 容器间通信配置
6. 其他重要运维命令
命令格式:
docker inspect <容器ID或镜像ID> # 查看详细配置信息 |
功能说明:
docker inspect: 查看对象(容器、镜像、网络等)的详细配置docker cp: 文件在容器和主机间复制docker tag: 为镜像添加标签docker system df: 查看Docker磁盘使用情况docker system prune: 清理未使用的资源
使用场景:
- 监控容器性能
- 查看和调试容器、镜像配置
- 数据备份和迁移
- 系统资源管理和清理
7. 安全和登录命令
命令格式:
docker login [SERVER] |
功能说明:
docker login: 登录Docker仓库docker logout: 退出Docker仓库docker events: 获取实时事件- 在运行命令中使用
--rm选项自动删除容器
使用场景:
- 推送镜像到私有仓库
- 安全认证
- 监控Docker活动
- 临时任务执行
Sealos 命令集合
1. 集群管理命令
命令格式:
sealos run <镜像名> [可选参数] # 运行集群镜像,快速部署应用 |
功能说明:
sealos run: 轻松运行云原生应用,是部署集群的常用方式sealos apply: 使用Clusterfile在Kubernetes集群内运行集群镜像sealos reset: 完全清理集群,重置到初始状态sealos status: 检查当前集群的状态sealos cert: 更新集群API服务器的证书sealos gen: 生成集群配置文件模板
使用场景:
- 部署和初始化Kubernetes集群
- 集群状态检查和维护
- 证书更新和管理
- 集群配置文件创建
2. 节点管理命令
命令格式:
sealos add --masters <IP列表> # 添加master节点到集群 |
功能说明:
sealos add: 向集群中添加master或node节点sealos delete: 从集群中删除master或node节点sealos exec: 在特定类型的节点上执行命令
使用场景:
- 集群水平扩展,增加节点
- 节点维护或故障后移除节点
- 在集群节点上执行维护任务
3. 远程操作命令
命令格式:
sealos exec --hosts <IP地址> "command" # 在指定节点上执行命令 |
功能说明:
sealos exec: 在远程节点上执行shell命令或脚本sealos scp: 在本地与节点之间复制文件
使用场景:
- 在远程节点上执行诊断或管理任务
- 向节点传输配置文件或脚本
- 远程收集日志或配置文件
4. 容器和镜像命令
命令格式:
sealos images # 列出本地存储中的镜像 |
功能说明:
sealos images/pull/push/rmi/save/load/tag: 镜像的基本操作sealos build: 使用Sealfile或Kubefile构建集群镜像
使用场景:
- 集群镜像管理
- 构建和推送自定义集群镜像
- 镜像的备份和迁移
5. 其他辅助命令
命令格式:
sealos completion <shell> # 为指定的shell生成自动补全脚本 |
功能说明:
sealos completion: 配置命令行自动补全功能sealos version/env: 检查版本和环境信息sealos login/logout: 容器仓库认证sealos inspect: 查看镜像或容器的详细配置
使用场景:
- 提高命令行操作效率
- 检查Sealos安装和配置
- 仓库访问认证
- 镜像详细信息查看
Kubectl 命令集合
1. 基础语法
kubectl [command] [TYPE] [NAME] [flags] |
- command:指定要对一个或多个资源执行的操作,如create、get、describe和delete
- TYPE:指定资源类型,不区分大小写,可以为单数、复数或缩写形式
- NAME:指定资源的名称,区分大小写,若省略则显示所有资源
- flags:指定可选参数,如-s或–server参数指定Kubernetes API服务器的地址和端口
2. 资源查看与查询命令
命令格式:
kubectl get pods -A # 列出所有命名空间中的Pod |
功能说明:
kubectl get: 获取资源对象的基本信息- 支持各种资源类型(pods, services, deployments等)
使用场景:
- 检查集群整体运行状况
- 查看节点健康状态
- 检查应用部署状态
- 查看服务暴露情况
3. 资源创建与管理命令
命令格式:
kubectl create -f resource.yaml # 从配置文件创建资源 |
功能说明:
kubectl create/apply: 创建或更新资源对象kubectl delete: 删除资源对象kubectl scale: 调整应用副本数量kubectl expose: 创建Service关联Deployment
使用场景:
- 从配置文件创建资源
- 生产环境推荐使用apply进行更新
- 动态调整应用负载能力
- 删除异常或不需要的资源
4. 资源描述与调试命令
命令格式:
kubectl describe pod pod_name # 显示Pod详细信息和事件 |
功能说明:
kubectl describe: 显示资源的详细配置和状态信息kubectl logs: 查看容器日志kubectl exec: 在Pod中执行命令kubectl port-forward: 端口转发用于调试kubectl top: 显示资源使用情况
使用场景:
- 排查Pod启动失败问题
- 查看应用运行状态和资源使用
- 调试容器内部环境
- 实时监控应用输出
- 本地调试集群内服务
5. 配置与更新命令
命令格式:
kubectl set image deployment/deployment_name container_name=image:newtag # 更新部署的镜像 |
功能说明:
kubectl set image: 更新部署的镜像kubectl patch: 部分更新资源配置kubectl rollout: 管理部署的滚动更新和回滚kubectl set env/resources: 设置环境变量和资源限制
使用场景:
- 灰度发布新版本
- 回滚故障更新
- 监控更新进度
- 修改资源配置
6. 节点与集群管理命令
命令格式:
kubectl cordon node_name # 标记节点不可调度 |
功能说明:
kubectl cordon/uncordon: 标记节点可调度或不可调度kubectl drain: 安全驱逐节点上的Podkubectl taint: 给节点添加污点kubectl cluster-info/config: 查看集群和配置信息
使用场景:
- 维护前排空节点
- 恢复节点调度
- 节点维护前安全驱逐Pod
- 集群配置管理
7. 配置管理与网络命令
命令格式:
kubectl create configmap name --from-file=file # 创建ConfigMap |
功能说明:
kubectl create configmap/secret: 创建配置和密钥kubectl get ingress/networkpolicy: 获取网络相关资源kubectl create/get serviceaccount: 管理服务账户
使用场景:
- 管理配置文件和敏感信息
- 控制应用网络访问
- 权限管理
8. 调试和排错命令
命令格式:
kubectl debug node/node_name -it --image=busybox # 调试节点 |
功能说明:
kubectl debug: 创建调试Pod用于排错kubectl get componentstatuses: 检查集群组件状态- 字段选择器: 通过字段筛选资源
使用场景:
- 调试集群节点和Pod
- 排查集群组件问题
- 查找特定状态的资源
结论
本文档全面总结了Docker、Sealos和Kubectl三个重要工具的运维命令,涵盖了从基础操作到高级管理的各个方面。这些命令是云原生运维工程师必须掌握的核心技能,熟练使用这些命令可以有效提高日常运维效率,保障应用的稳定运行。
常用运维流程示例
1. 应用部署流程
- 使用Docker构建应用镜像
- 使用Sealos部署Kubernetes集群
- 使用Kubectl部署应用到集群
2. 问题排查流程
- 使用kubectl get pods检查Pod状态
- 使用kubectl describe pod查看详情
- 使用kubectl logs查看日志
- 使用kubectl exec进入Pod调试
3. 集群维护流程
- 使用kubectl cordon标记节点不可调度
- 使用kubectl drain安全排空节点
- 维护完成后使用kubectl uncordon恢复节点调度
- 使用sealos exec在节点上执行维护命令
掌握这些命令和流程,可以有效提升Kubernetes集群和应用的管理效率。