CentOS7修改Docker默认存储路径

当你使用Docker时,Docker的默认配置是将镜像、容器和卷存储在系统/var/lib/docker/目录下,如果docker镜像安装的太多会导致磁盘不够,你可以尝试以下方法来释放空间:

  • 清理无用的镜像和容器:使用docker命令删除不再使用的镜像和容器。可以使用docker image prune和docker container prune命令来清理。
  • 清理Docker日志:Docker日志文件可能会占用大量的磁盘空间。你可以使用docker system prune --all --volumes命令来清理日志文件。
  • 移动Docker数据目录:你可以将Docker的数据目录移动到有更多空间的磁盘上。首先停止Docker服务,然后将/var/lib/docker目录移动到新的位置,并创建一个符号链接指向新的目录。最后重新启动Docker服务。
  • 大文件清理:如果上述方法仍然无法释放足够的空间,你可以使用工具如find命令来查找和删除占用大量空间的文件。

下面是使用移动Docker数据目录的方式来释放磁盘空间:

一、查看docker当前安装信息
复制代码
docker info

Client:
 Version:    24.0.7
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.14.1
    Path:     /usr/libexec/docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.27.1
    Path:     /usr/libexec/docker/cli-plugins/docker-compose

Server:
 Containers: 15
  Running: 15
  Paused: 0
  Stopped: 0
 Images: 12
 Server Version: 24.0.7
 Storage Driver: overlay2
  Backing Filesystem: xfs
  Supports d_type: true
  Using metacopy: false
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 091922f03c2762540fd057fba91260237ff86acb
 runc version: v1.1.9-0-gccaecfc
 init version: de40ad0
 Security Options:
  seccomp
   Profile: builtin
 Kernel Version: 3.10.0-1160.71.1.el7.x86_64
 Operating System: CentOS Linux 7 (Core)
 OSType: linux
 Architecture: x86_64
 CPUs: 8
 Total Memory: 15.49GiB
 Name: localhost.localdomain
 ID: e8baaad4-fba7-4219-ae05-ff9b078d23e0
 Docker Root Dir: /wwwroot/docker
 Debug Mode: false
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false
 Product License: Community Engine

WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled

默认是:Docker Root Dir: /wwwroot/docker

二、修改docker默认存储目录
1. Docker常见的配置文件有:
  • daemon.json:Docker 守护进程的配置文件,用于配置 Docker 守护进程的各种参数,如镜像仓库地址、网络配置等。
  • certs:存放 SSL/TLS 证书和密钥文件的目录,用于配置安全加密通信。
  • networks:存放网络配置文件的目录,用于配置 Docker 网络。
  • volumes:存放数据卷相关配置文件的目录,用于配置容器间数据共享和持久化。
2. Docker常见的配置文件路径:
  • 在Linux上,Docker配置文件通常位于/etc/docker/目录下。其中,/etc/docker/daemon.json文件包含了Docker守护进程的配置选项。
  • 在Windows上,Docker配置文件通常位于C:\ProgramData\docker\config\目录下。其中,C:\ProgramData\docker\config\daemon.json文件包含了Docker守护进程的配置选项。
  • 在Mac上,Docker配置文件通常位于/usr/local/etc/docker/目录下。其中,/usr/local/etc/docker/daemon.json文件包含了Docker守护进程的配置选项。
3. 在Linux系统修改Docker配置文件的步骤:
  • 新建配置文件目录,默认是没有这个目录

    mkdir /etc/docker

  • daemon.json是Docker 守护进程的配置文件,用于配置 Docker 守护进程的各种参数,如镜像仓库地址、网络配置等。新建daemon.json

    vi /etc/docker/daemon.json

  • 添加如下内容,当然路径是需要选择磁盘空间充足的路径,这里需要根据具体情况选择

    {
    "data-root": "/home/docker"
    }

三、加载配置并重启docker
复制代码
systemctl daemon-reload
systemctl restart docker
  • 查看配置

    docker info

    Client:
    Version: 24.0.7
    Context: default
    Debug Mode: false
    Plugins:
    buildx: Docker Buildx (Docker Inc.)
    Version: v0.14.1
    Path: /usr/libexec/docker/cli-plugins/docker-buildx
    compose: Docker Compose (Docker Inc.)
    Version: v2.27.1
    Path: /usr/libexec/docker/cli-plugins/docker-compose

    Server:
    Containers: 15
    Running: 15
    Paused: 0
    Stopped: 0
    Images: 12
    Server Version: 24.0.7
    Storage Driver: overlay2
    Backing Filesystem: xfs
    Supports d_type: true
    Using metacopy: false
    Native Overlay Diff: true
    userxattr: false
    Logging Driver: json-file
    Cgroup Driver: cgroupfs
    Cgroup Version: 1
    Plugins:
    Volume: local
    Network: bridge host ipvlan macvlan null overlay
    Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
    Swarm: inactive
    Runtimes: io.containerd.runc.v2 runc
    Default Runtime: runc
    Init Binary: docker-init
    containerd version: 091922f03c2762540fd057fba91260237ff86acb
    runc version: v1.1.9-0-gccaecfc
    init version: de40ad0
    Security Options:
    seccomp
    Profile: builtin
    Kernel Version: 3.10.0-1160.71.1.el7.x86_64
    Operating System: CentOS Linux 7 (Core)
    OSType: linux
    Architecture: x86_64
    CPUs: 8
    Total Memory: 15.49GiB
    Name: localhost.localdomain
    ID: e8baaad4-fba7-4219-ae05-ff9b078d23e0
    Docker Root Dir: /home/docker
    Debug Mode: false
    Experimental: false
    Insecure Registries:
    127.0.0.0/8
    Live Restore Enabled: false
    Product License: Community Engine

    WARNING: bridge-nf-call-iptables is disabled
    WARNING: bridge-nf-call-ip6tables is disabled

路径已经显示为:Docker Root Dir: /home/docker

四、复制docker文件到新的挂载目录
复制代码
# 迁移文件
cp -arp /var/lib/docker/* /home/docker
#重启docker
systemctl restart docker
#查看是否重启
docker ps

磁盘空间释放完毕,在软件安装时,尽量不要安装在默认磁盘空间,一般情况下,默认安装磁盘空间为系统安装目录,占用太多会导致系统运行异常,抛出磁盘不足的错误。

Docker镜像通常会占用较大的存储空间,这是因为Docker镜像是一个完整的文件系统,包含了操作系统、应用程序和其依赖的所有文件,所以设置Docker的默认安装路径是十分必要的。

相关推荐
米高梅狮子14 小时前
Ceph 分布式存储 部署
linux·运维·数据库·分布式·ceph·docker·华为云
米高梅狮子15 小时前
Redis
数据库·redis·mysql·缓存·docker·容器·github
代码熬夜敲Q16 小时前
Docker基础
运维·docker·容器
亚空间仓鼠16 小时前
Docker容器化高可用架构部署方案(十四)
docker·容器·架构
Flittly18 小时前
【日常小问】Spring Cloud Gateway 5.x 跨域和路由配置踩坑实录
java·spring boot·spring cloud
wljt18 小时前
为什么要使用Spring Cloud,而不是HTTP直接调用接口?
spring·http·spring cloud
Zhu75818 小时前
【配置优化】docker29及以上版本配置优化。
docker
土星云SaturnCloud19 小时前
土星云AI边缘计算-算法运行环境搭建:Docker部署全流程实操
服务器·人工智能·docker·ai·边缘计算
fanzhonghong19 小时前
javaWeb后端开发之Linux项目部署3和Docker部署1
linux·服务器·前端·docker