文章目录
- 在Linux系统中关闭Docker服务并禁止其开机自启,具体步骤如下:
- 适用于使用 `systemd` 的系统(如Ubuntu 16.04+/CentOS 7+等)
- 适用于使用 `SysVinit` 或 `Upstart` 的旧版系统
- 其他注意事项
- 示例输出
- linux 下 一条命令实现 统计各个目录占用空间大小,单位为Mb
- docker 安装目录文件分析
- **1. Docker 默认安装目录结构**
- **2. 分析目录空间占用**
- **方法 1:快速统计各子目录大小(MB 单位)**
- **方法 2:精确统计(含小数,单位为 MB)**
- **3. 关键目录优化建议**
- **(1) `overlay2/` 目录(镜像与容器层)**
- **(2) `volumes/` 目录(数据卷)**
- **(3) `buildkit/` 目录(构建缓存)**
- **4. 迁移 Docker 存储目录**
- **5. 注意事项**
在Linux系统中关闭Docker服务并禁止其开机自启,具体步骤如下:
适用于使用 systemd
的系统(如Ubuntu 16.04+/CentOS 7+等)
-
停止Docker服务
执行以下命令立即停止Docker:sudo systemctl stop docker
若存在其他关联服务(如
docker.socket
),也可一并停止:sudo systemctl stop docker.socket
-
禁止开机自启
禁用Docker服务开机启动:sudo systemctl disable docker
同样禁用关联服务(如存在):
sudo systemctl disable docker.socket
-
验证操作结果
• 检查服务状态:systemctl status docker
输出中应显示
Active: inactive (dead)
表示已停止,Loaded: disabled
表示已禁用。
• 确认是否禁用开机启动:systemctl is-enabled docker # 输出应为 "disabled"
适用于使用 SysVinit
或 Upstart
的旧版系统
-
停止Docker服务
sudo service docker stop
-
禁止开机自启
• SysVinit(如Debian 7/Ubuntu 14.04):sudo update-rc.d docker disable
• Upstart(如CentOS 6):
sudo chkconfig docker off
其他注意事项
• 服务名称确认
如果以上命令报错,可能是服务名称不同。使用以下命令查找:
systemctl list-unit-files | grep docker
• 彻底卸载Docker(可选)
若需完全移除Docker,可参考官方文档卸载软件包。
示例输出
$ sudo systemctl disable docker
Removed /etc/systemd/system/multi-user.target.wants/docker.service.
$ systemctl is-enabled docker
disabled
linux 下 一条命令实现 统计各个目录占用空间大小,单位为Mb
root@moli:/var/lib/docker# du -sh *104K buildkit
4.0M containers
4.0K engine-id
12M image
104K network
13G overlay2
8.0K plugins
4.0K runtimes
4.0K swarm
4.0K tmp
176K volumes
docker 安装目录文件分析
cd /var/lib/dockerroot@moli:/var/lib/docker# ll
total 60
drwx--x--- 12 root root 4096 Feb 24 10:06 ./
drwxr-xr-x 55 root root 4096 Feb 10 11:10 ../
drwx--x--x 3 root root 4096 Feb 10 11:10 buildkit/
drwx--x--- 11 root root 4096 Feb 10 11:27 containers/
-rw------- 1 root root 36 Feb 10 11:10 engine-id
drwx------ 3 root root 4096 Feb 10 11:10 image/
drwxr-x--- 3 root root 4096 Feb 10 11:10 network/
drwx--x--- 88 root root 12288 Feb 24 10:06 overlay2/
drwx------ 3 root root 4096 Feb 10 11:10 plugins/
drwx------ 2 root root 4096 Feb 24 10:06 runtimes/
drwx------ 2 root root 4096 Feb 10 11:10 swarm/
drwx------ 2 root root 4096 Feb 24 10:06 tmp/
drwx-----x 4 root root 4096 Feb 24 10:06 volumes/
以下是对 Docker 安装目录的详细分析指南,涵盖目录结构、空间占用统计及优化建议:
1. Docker 默认安装目录结构
Docker 的主数据目录默认为 /var/lib/docker
(Linux 系统),包含以下核心子目录:
目录 | 作用 |
---|---|
containers/ | 存储所有容器的运行时数据(每个容器对应一个子目录) |
volumes/ | 存储数据卷的持久化数据(每个卷对应一个子目录) |
image/ | 存储镜像的元数据(如镜像层、标签信息) |
overlay2/ | 默认存储驱动目录,存放镜像和容器的联合文件系统层(如 diff 、merged ) |
buildkit/ | 存储 docker build 构建缓存和临时文件 |
network/ | 管理容器的网络配置(如 bridge 、macvlan 网络) |
plugins/ | 存储 Docker 插件(如日志驱动、卷驱动) |
2. 分析目录空间占用
方法 1:快速统计各子目录大小(MB 单位)
sudo du -m --max-depth=1 /var/lib/docker 2>/dev/null | sort -nr
输出示例:
4096 /var/lib/docker
1024 /var/lib/docker/overlay2
512 /var/lib/docker/volumes
256 /var/lib/docker/containers
64 /var/lib/docker/buildkit
方法 2:精确统计(含小数,单位为 MB)
sudo du -k --max-depth=1 /var/lib/docker 2>/dev/null | awk '{ printf "%.2f MB\t%s\n", $1/1024, $2 }' | sort -k1nr
输出示例:
4096.00 MB /var/lib/docker
1024.00 MB /var/lib/docker/overlay2
512.00 MB /var/lib/docker/volumes
3. 关键目录优化建议
(1) overlay2/
目录(镜像与容器层)
- 清理无用镜像:
docker image prune -a # 删除所有未被容器引用的镜像
- 清理停止的容器:
docker container prune # 删除所有已停止的容器
(2) volumes/
目录(数据卷)
- 删除未使用的数据卷:
docker volume prune
(3) buildkit/
目录(构建缓存)
- 清理构建缓存:
docker builder prune
4. 迁移 Docker 存储目录
若默认目录 /var/lib/docker
空间不足,可迁移到新位置(如 /mnt/docker
):
# 1. 停止 Docker 服务
sudo systemctl stop docker# 2. 复制数据到新目录
sudo cp -a /var/lib/docker /mnt/docker# 3. 修改 Docker 配置文件
sudo vim /etc/docker/daemon.json
# 添加以下内容:
{"data-root": "/mnt/docker"
}# 4. 重启 Docker
sudo systemctl start docker
5. 注意事项
- 权限问题:Docker 目录需
root
权限访问,使用sudo
执行命令。 - 谨慎删除:手动删除文件可能导致 Docker 数据损坏!优先使用
docker system prune
清理。 - 备份数据:迁移或清理前,建议备份重要容器和数据卷。