容器平台命令行操作入门指南(进阶教程)

在现代开发和运维工作中,容器技术已经成了家常便饭。像 Docker 和 Kubernetes 这类平台,虽然有图形界面,但真正高效的操作还得靠命令行。熟练使用命令行,不仅能快速排查问题,还能批量管理服务,省时又省力。

认识基本的容器命令

以 Docker 为例,启动一个 Nginx 容器只需要一条命令:

docker run -d -p 8080:80 --name my-nginx nginx

这条命令的意思是:后台运行(-d)一个名为 my-nginx 的容器,把主机的 8080 端口映射到容器的 80 端口,镜像用的是官方 nginx。执行完,打开浏览器访问 localhost:8080 就能看到欢迎页了。

查看和管理正在运行的容器

想看看当前有哪些容器在跑,可以用:

docker ps

如果连已停止的也想看,加个 -a 参数:

docker ps -a

看到某个容器卡住了,可以手动停掉或删掉:

docker stop my-nginx
docker rm my-nginx

进入容器内部调试

有时候服务出问题,得进容器里看看配置文件对不对。比如要进入一个正在运行的 Ubuntu 容器:

docker exec -it my-ubuntu /bin/bash

-it 表示交互式终端,/bin/bash 是启动 shell。进去之后就跟操作普通 Linux 机器一样了,查日志、改配置、装工具都行。

Kubernetes 中的常用操作

当服务规模变大,单用 Docker 不够用了,就得上 Kubernetes(简称 k8s)。虽然它复杂一些,但核心命令也不难记。

查看集群里的所有 Pod:

kubectl get pods

想看某个服务的日志,比如叫 web-app 的 Pod:

kubectl logs web-app

要是应用挂了,可以尝试重启:

kubectl delete pod web-app
# k8s 会自动拉起新实例

写个简单的部署文件试试

k8s 很多时候靠 YAML 文件定义服务。比如创建一个 deployment.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deploy
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        ports:
        - containerPort: 80

然后用命令提交到集群:

kubectl apply -f deployment.yaml

这样就会在集群里启动两个 Nginx 实例,后续还可以用 kubectl scale 调整副本数。

小技巧:命令补全和别名

敲多了命令难免手酸。可以给常用命令设个别名,比如在 ~/.bashrc 里加一行:

alias kd="kubectl"

再启用 kubectl 自动补全:

source <(kubectl completion bash)

保存后重新加载配置,敲命令时按 Tab 就能自动补全资源类型和名称,效率提升明显。

命令行不是花架子,它是每天和系统打交道的工具。刚开始可能觉得记命令麻烦,但用熟了之后,点鼠标反而会觉得慢。