Bootstrap

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

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;