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的默认安装路径是十分必要的。

相关推荐
水彩橘子27 分钟前
docker+ffmpeg+nginx+rtmp 拉取摄像机视频
nginx·docker·ffmpeg
默凉1 小时前
docker GPU安装
docker
田振靓1 小时前
Ubuntu 上安装 Docker
ubuntu·docker
Gavino.2 小时前
记录将springboot的jar包和lib分离,使用docker-compose部署
spring boot·docker·jar
dessler2 小时前
Docker-网络&跨主机通信
linux·运维·docker
PyAIGCMaster4 小时前
docker学习记录:创建python环境,使用vscode连接远程docker环境,使其访问同为docker镜像的mongodb的设置。
学习·docker·容器
IT搬砖攻城狮4 小时前
超完整Docker学习记录,Docker常用命令详解
运维·docker·容器·容器化部署
松果猿7 小时前
使用 Docker 容器化部署 Spring Boot + Vue 项目:以若依后台管理系统为例
docker
迷路爸爸1808 小时前
在 CentOS 上安装 Docker 和 Docker Compose(可指定版本或安装最新版本)
linux·docker·centos
李心怡-1239 小时前
Ollama + FastGPT搭建本地私有企业级AI知识库 (Linux)
android·linux·运维·人工智能·docker·李心怡