1. Docker 服务管理
启动与状态
- 启动 Docker 服务:
sudo systemctl start docker
- 设置开机自启:
sudo systemctl enable docker.service
- 查看运行状态 (需 root 权限):
systemctl status docker.service
- 查看版本信息:
docker version
- 查看概要信息:
docker info
- 检查配置文件:
cat /etc/docker/daemon.json
- 查看帮助文档:
docker --help
卸载 Docker
- 停止服务:
systemctl stop docker.service
ps -ef | grep docker
- 删除安装目录:
rm -rf /etc/docker
rm -rf /run/docker
rm -rf /var/lib/dockershim
rm -rf /var/lib/docker
- 查看依赖包:
yum list installed | grep docker
# 注意:原文中 "docker list installed" 有误,应为 yum 或 rpm 命令
- 删除依赖包:
yum remove docker-common.x86_64
yum remove docker-client.x86_64
yum remove docker.x86_64
- 验证卸载:
docker version
systemctl start docker.service
# 若卸载成功,上述命令应报错
2. Docker 镜像操作
- 查看本地镜像:
docker images
- 查看所有镜像 (包含中间层/历史镜像):
docker images -a
- 拉取镜像:
docker pull <镜像名称>[:tag]
# 示例:
docker pull mysql:5.7.25
- 删除镜像:
docker rmi <镜像名字或ID>
- 清理虚悬镜像 (Dangling Images):
docker image prune
- 将容器保存为新镜像:
docker commit -m "<描述信息>" -a "<作者名字>" <容器ID> <新镜像名>:<标签>
# 示例:
docker commit -m="add vim" -a="wujunze" 65a4b2521717 centos-with-vim:1.0.0
注意:
docker commit是手动创建镜像的方式,可重复性弱且难以审计。生产环境建议使用Dockerfile构建。
3. Docker 容器操作
启动容器
- 启动已存在的停止容器:
docker start <容器名称或ID>
- 创建并启动新容器:
- 前台交互式启动 (进入后直接操作容器):
docker run -it <镜像ID或名称> /bin/bash
- **后台守护式启动**:
docker run -d -t <镜像ID或名称> /bin/bash
# 示例:
docker run -d centos-with-ifconfig:latest /bin/bash
进入后台容器:
docker exec -it <容器名称> /bin/bash
进入与退出容器
- 进入容器:
docker exec -it <容器ID或名称> /bin/bash
- 退出容器方式:
- 推荐方式 (
Ctrl + p然后q): 退出终端但不停止容器。 - 普通方式 (
exit或Ctrl + d):- 若是前台启动 (
docker run -it),会停止容器。 - 若是通过
exec进入的新终端,退出后容器继续运行。
- 若是前台启动 (
- 推荐方式 (
停止与删除
- 查看运行中的容器:
docker ps
- 查看所有容器 (含已停止):
docker ps -a
- 停止容器:
docker stop <容器ID或名称>
- 删除容器:
docker rm <容器名称或ID>
文件复制
- 宿主机 -> 容器:
docker cp <宿主机文件路径> <容器ID>:<容器内路径>
# 示例:
docker cp Dockerfile 3a7d0b590c18:/root
- 容器 -> 宿主机:
docker cp <容器ID>:<容器内文件路径> <宿主机目标路径>
# 示例:
docker cp 3a7d0b590c18:/root/anaconda-ks.cfg /root/test/anaconda-ks.cfg
4. Docker 网络
- 查看网络列表:
docker network ls
默认安装后会自动创建
bridge,host,none三个网络。
5. Kubernetes (k8s) 常用指令
Pod 管理
- 查看 Pod 列表:
kubectl get pod
- 查看 Pod 详细信息 (含所在节点):
kubectl get pods -o wide
- 根据标签查看 Pod:
kubectl get pods -l <label-key>=<label-value>
- 查看 Pod 日志:
kubectl logs <pod-name>
- 查看 Pod 详细描述 (用于排查问题):
kubectl describe pod <pod-name>
应用部署与服务
- 应用 YAML 配置:
kubectl apply -f <文件名.yaml>
- 查看 Service 详细信息及访问地址:
kubectl get svc
# 示例:
kubectl get svc helloworld-env-service
删除资源
- 根据 YAML 删除:
kubectl delete -f <文件名.yaml>
- 删除 Deployment:
kubectl delete deployment <deployment-name>
- 删除 Pod:
kubectl delete pod <pod-name>