当你使用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-composeServer:
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 EngineWARNING: 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的默认安装路径是十分必要的。