Linux系统中关闭Docker服务并禁止其开机自启 、docker 安装目录结构分析 | 【du -sh *】

在Linux系统中关闭Docker服务并禁止其开机自启,具体步骤如下:

适用于使用 systemd 的系统(如Ubuntu 16.04+/CentOS 7+等)

  1. 停止Docker服务
    执行以下命令立即停止Docker:

    sudo systemctl stop docker
    

    若存在其他关联服务(如docker.socket),也可一并停止:

    sudo systemctl stop docker.socket
    
  2. 禁止开机自启
    禁用Docker服务开机启动:

    sudo systemctl disable docker
    

    同样禁用关联服务(如存在):

    sudo systemctl disable docker.socket
    
  3. 验证操作结果
    • 检查服务状态:

    systemctl status docker
    

    输出中应显示 Active: inactive (dead) 表示已停止,Loaded: disabled 表示已禁用。
    • 确认是否禁用开机启动:

    systemctl is-enabled docker  # 输出应为 "disabled"
    

适用于使用 SysVinitUpstart 的旧版系统

  1. 停止Docker服务

    sudo service docker stop
    
  2. 禁止开机自启
    • 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/docker

root@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/默认存储驱动目录,存放镜像和容器的联合文件系统层(如 diffmerged
buildkit/存储 docker build 构建缓存和临时文件
network/管理容器的网络配置(如 bridgemacvlan 网络)
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 清理。
  • 备份数据:迁移或清理前,建议备份重要容器和数据卷。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

墨理学AI

不必打赏,关注博主公众号即可

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值