为什么用命令行管理容器
在日常运维或开发中,图形界面虽然直观,但效率往往不如命令行。比如你要批量重启几个服务,点鼠标得来回切换页面,而命令行敲一行就搞定。特别是在远程服务器上,带宽有限,图形界面卡得要命,命令行反而更稳更快。
容器平台如 Docker、Kubernetes 都提供了强大的 CLI 工具,熟练掌握这些命令,能让你在部署、调试、监控时游刃有余。
Docker 常用命令实战
本地跑个容器最常用的就是 docker run。比如你想快速启动一个 Nginx 服务预览网页:
docker run -d -p 8080:80 --name my-web nginx这里 -d 表示后台运行,-p 映射端口,--name 给容器起个名字。过会儿发现忘了挂载静态文件,可以先删掉再重新创建:
docker stop my-web
docker rm my-web然后加上目录映射:
docker run -d -p 8080:80 --name my-web -v /path/to/html:/usr/share/nginx/html nginx查看日志和进入容器
服务跑起来后出问题怎么办?看日志最直接:
docker logs my-web如果需要进容器内部查配置或临时改文件,用 exec:
docker exec -it my-web sh-it 表示交互式终端,sh 进入轻量 shell。有些镜像默认是 bash,那就换成 bash 就行。
Kubernetes 的 kubectl 操作技巧
在生产环境,多数人用 Kubernetes 管理容器集群。kubectl 是核心工具。比如想看所有正在运行的 Pod:
kubectl get pods -A-A 表示所有命名空间。如果某个服务没起来,可以查具体状态:
kubectl describe pod <pod-name> -n <namespace>日志也一样能捞:
kubectl logs <pod-name> -n <namespace>修改完 YAML 文件后,可以直接应用更新:
kubectl apply -f deployment.yaml如果想临时调试,还能进容器(前提是镜像包含 shell):
kubectl exec -it <pod-name> -n <namespace> -- sh小技巧:别名和自动补全
敲命令多了容易手酸,可以给常用命令设别名。比如在 ~/.bashrc 或 ~/.zshrc 里加一行:
alias k='kubectl'
complete -F __start_kubectl k保存后 source 一下,以后输入 k get pods 就等于 kubectl get pods,效率翻倍。
另外,Tab 补全也很实用,装好 kubectl 自带的补全脚本后,输入一半按 Tab,命令、Pod 名都能自动补全,少打错也更快。