【运维必备】Docker/K8s/Linux 高频命令速查手册(持续更新)
本文总结了日常开发运维中最高频的 Docker、Kubernetes、Linux 命令,涵盖环境搭建、容器管理、故障排查与发布回滚等场景,每条命令均附带场景说明与关键参数解释,适合运维及全栈开发者速查收藏。
一、Docker 环境快速搭建
以下命令均已测试,用于快速拉起常用中间件。请务必将密码、IP等占位符替换为自己的真实值。
1.1 Portainer(Docker Web 管理界面)
提供图形化容器管理能力。
docker run -d -p 9000:9000 --restart=always \ -v /var/run/docker.sock:/var/run/docker.sock \ --name portainer portainer/portainer
说明:-v 挂载 Docker 守护进程,使 Portainer 能管理本机容器。
1.2 Jenkins(CI/CD 利器)
docker run -d -p 8081:8080 -p 50000:50000 \ -v /app/jenkins_home:/var/jenkins_home \ --name jenkins --privileged=true --restart=always -u root jenkins
关键参数:–privileged=true 赋予容器更高权限,-u root 以 root 运行避免权限问题。
1.3 MinIO(对象存储)
docker run -p 9000:9000 --name minio -d --restart=always \ -e "MINIO_ACCESS_KEY=your_access_key" \ -e "MINIO_SECRET_KEY=your_secret_key" \ -v /data/minio/data:/data/minio \ -v /data/minio/config:/root/.minio \ minio/minio server /data/minio --address ":9000"
注意:访问密钥请使用强密码,并妥善保管。
1.4 RabbitMQ(消息队列)
bash
-p 15672:15672 -p 5672:5672 rabbitmq:management```端口:15672 为管理界面,5672 为 AMQP 协议端口。### 1.5 Redis(缓存)```bashdocker run -p 6379:6379 --restart=always --name redis \ -v /app/redis/redis.conf:/etc/redis/redis.conf \ -v /app/redis/data:/data \ -d redis:3.2 redis-server /etc/redis/redis.conf --appendonly yes
说明:挂载自定义配置文件并开启 AOF 持久化。
1.6 YApi(接口管理平台)
先启动 MongoDB:
docker run -d --restart=always --name mongo-yapi mongo
安装 YApi 服务:
docker run --restart=always -it --rm --link mongo-yapi:mongo \ --entrypoint npm --workdir /api/vendors \ registry.cn-hangzhou.aliyuncs.com/anoy/yapi run install-server
启动 YApi:
docker run -d --name yapi --link mongo-yapi:mongo \ --workdir /api/vendors -p 3000:3000 \ registry.cn-hangzhou.aliyuncs.com/anoy/yapi server/app.js
默认管理员:admin@admin.com,密码 ymfe.org(请登录后立即修改)。
1.7 Nexus3(制品仓库)
docker run -d -p 8081:8081 -p 8082:8082 -p 8083:8083 \ --name nexus -v /data/nexus-data:/nexus-data \ --restart=always sonatype/nexus3
1.8 kkFileView(文件在线预览)
docker run -p 8012:8012 --name kkfileview -d --restart=always \ 914423503/kkfileview:latest
1.9 Docker 私有 Registry
docker run -d -v /opt/registry:/var/lib/registry \ -p 5000:5000 --restart=always --name registry registry:2
若需开启删除功能:
docker run -d -v /app/repositories:/var/lib/registry \ -e REGISTRY_STORAGE_DELETE_ENABLED=true \ -p 5000:5000 --restart=always --privileged=true --name registry registry:2
1.10 Canal(MySQL binlog 同步)
docker run -p 11111:11111 --name canal -d \ -v /app/canal/canal.properties:/home/admin/canal-server/conf/canal.properties \ -v /app/canal/instance.properties:/home/admin/canal-server/conf/example/instance.properties \ canal/canal-server
或通过环境变量直接运行:
sh run.sh -e canal.auto.scan=false \ -e canal.destinations=test \ -e canal.instance.master.address=127.0.0.1:3306 \ -e canal.instance.dbUsername=canal \ -e canal.instance.dbPassword=your_password \ -e canal.instance.connectionCharset=UTF-8 \ -e canal.instance.tsdb.enable=true \ -e canal.instance.gtidon=false
1.11 Magento2 电商环境
MySQL:
docker run --restart=always --name mysql-magento2 -d -p 3306:3306 \ -e MYSQL_ROOT_PASSWORD=your_root_pwd \ -e MYSQL_DATABASE=magento2 \ -e MYSQL_USER=dbadmin \ -e MYSQL_PASSWORD=your_db_pwd \ -v /app/magento2/mysql:/var/lib/mysql mysql:5.6
Magento2 应用:
docker run --restart=always -d --name magento2 -p 85:80 \ -v /app/magento2/data:/data alexcheng/magento2
1.12 Apollo 配置中心(MySQL)
docker run --restart=always --name mysql-apollo -d -p 3307:3306 \ -e MYSQL_ROOT_PASSWORD=your_root_pwd \ -v /app/apollo/mysql:/var/lib/mysql mysql:5.7
1.13 Rancher 单节点(容器管理平台)
docker run -d --privileged -e JAVA_OPTS="-Xmx1024m" \ --restart=unless-stopped -p 80:80 -p 443:443 \ -v /data/rancher/data:/var/lib/rancher/ \ -v /data/rancher/auditlog:/var/log/auditlog \ -e CATTLE_SYSTEM_CATALOG=bundled -e AUDIT_LEVEL=3 \ rancher/rancher:stable
二、Docker 容器管理常用操作
2.1停止并删除所有容器
docker stop (docker ps -aq)
2.2排除特定容器后停止
docker stop 1}' | \ xargs kubectl get po -n coding -o yaml | grep image:
4.2 进入 Pod 内的 MySQL(解决乱码)
kubectl exec -it mysql-0 env LANG=C.UTF-8 bash -n mysqlmysql -u root -proot --default-character-set=utf8
4.3 强制删除所有 Terminating 状态的 Pod
kubectl get po -n coding | grep Terminating | awk '{print $1}' | \ xargs kubectl delete po -n coding --grace-period=0 --force
4.4 Deployment 回滚
回滚到上一个版本:kubectl rollout undo deployment/micro-frontend-team -n coding
查看历史版本:
kubectl rollout history deployment/e-coding -n coding
回滚到指定版本
kubectl rollout undo deployment/e-coding --to-revision=66 -n coding
4.5 更新 Deployment 镜像
kubectl set image deploy micro-frontend-vcs \ micro-frontend-vcs=your-registry/your-image:tag
五、其他实用工具与配置
5.1 国内源安装 Docker Compose
curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-composedocker-compose --version
5.2 Docker 镜像加速器
/etc/docker/daemon.json:json{ "registry-mirrors": [ "https://your-id.mirror.aliyuncs.com", "http://hub-mirror.c.163.com", "https://registry.docker-cn.com" ]}
5.3 自签 SSL 证书生成
./create_self-signed-cert.sh \ --ssl-trusted-ip=192.168.1.10,192.168.1.11 \ --ssl-size=2048 --ssl-date=3650
提示:请替换为自己的主机 IP 列表。
5.4 Helm 与 Tiller 安装(K8s 包管理)
下载并安装 Helm 客户端wget https://get.helm.sh/helm-v2.14.1-linux-amd64.tar.gztar -zxvf helm-v2.14.1-linux-amd64.tar.gzmv linux-amd64/helm /usr/local/bin/chmod a+x /usr/local/bin/helm
创建 RBAC 并初始化 Tiller (示例)kubectl create -f rbac-config.yamlhelm init -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.14.3 \ --stable-repo-url http://mirror.azure.cn/kubernetes/charts/ \ --service-account tiller --override spec.selector.matchLabels.'name'='tiller',spec.selector.matchLabels.'app'='helm' \ --output yaml | sed 's@apiVersion: extensions/v1beta1@apiVersion: apps/v1@' | kubectl apply -f -
5.5 Jenkins 更新中心加速
http://mirror.xmission.com/jenkins/updates/current/update-center.json
结语
这份速查表会持续更新,如果对你有帮助,欢迎点赞、收藏,也欢迎在评论区补充你们常用的“神级”命令。一起打造最实用的运维工具箱!