在 CentOS 上管理 Docker 镜像的实用指南
一 环境准备与安装
- 更新系统并安装依赖:sudo yum update -y && sudo yum install -y yum-utils device-mapper-persistent-data lvm2
- 添加 Docker 官方仓库:sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- 安装 Docker 引擎:sudo yum install -y docker-ce docker-ce-cli containerd.io
- 启动并设置开机自启:sudo systemctl start docker && sudo systemctl enable docker
- 验证安装:docker --version 或 sudo docker run --rm hello-world
二 常用镜像操作命令
| 目的 |
命令示例 |
| 列出本地镜像 |
docker images(加 -a 显示中间层) |
| 搜索镜像 |
docker search |
| 拉取镜像 |
docker pull :(如:nginx:latest) |
| 查看详细信息 |
docker inspect <image-id |
| 标记镜像 |
docker tag : |
| 删除镜像 |
docker rmi <image-id |
| 批量删除镜像 |
docker rmi $(docker images -q)(谨慎) |
| 导出镜像为归档 |
docker save -o <file.tar> |
| 从归档导入镜像 |
docker load -i <file.tar> |
| 构建镜像 |
docker build -t : . |
| 查看镜像历史 |
docker history |
| 登录镜像仓库 |
docker login [](按提示输入用户名/密码) |
| 登出 |
docker logout [] |
三 镜像获取与加速
- 登录与拉取:先执行 docker login 登录 Docker Hub 或私有仓库,再使用 docker pull 获取镜像(如:docker pull ubuntu:24.04)。
- 国内镜像加速(可选):编辑 /etc/docker/daemon.json,加入镜像源,例如:
{
“registry-mirrors”: [
“https://<你的镜像源地址>”
]
}
保存后执行:sudo systemctl daemon-reload && sudo systemctl restart docker。
- 导入/导出用于离线环境:在能联网的机器上 docker save 导出 .tar,在目标机器 docker load 导入即可。
四 清理与维护
- 清理未使用资源:
- 删除所有已停止的容器:docker container prune
- 删除未使用的镜像、容器、网络(谨慎):docker system prune
- 强制无确认清理:docker system prune -f
- 删除被容器占用的镜像:先停止并删除相关容器(docker stop/rm ),再执行 docker rmi ;或使用 -f 强制删除(可能导致异常,慎用)。
- 彻底清理 Docker(重装或回收空间前):
- 停止并删除容器:docker stop $(docker ps -aq) && docker rm $(docker ps -aq)
- 删除镜像:docker rmi $(docker images -q)
- 卸载软件包:sudo yum remove -y docker-ce docker-ce-cli containerd.io
- 删除数据目录:sudo rm -rf /var/lib/docker
- 验证:docker --version 应提示未找到命令
五 常见问题与排查
- 权限问题:如提示 permission denied,可将当前用户加入 docker 组(sudo usermod -aG docker $USER),然后重新登录会话;或在命令前加 sudo。
- 镜像拉取慢或失败:检查网络、仓库地址与标签是否正确;可配置国内镜像源并重启 Docker 服务。
- 删除失败(被占用):先清理使用该镜像的容器(docker ps -a 查看,必要时 docker rm -f ),再删除镜像。
- 构建失败:检查 Dockerfile 语法与上下文路径(. 表示当前目录),确保基础镜像存在且网络可达。