使用命名查看镜像存放位置
$ sudo docker info | grep "Docker Root Dir"
输出
Docker Root Dir: /var/lib/docker
通过创建软链接的方式来将镜像存储文件放到其他路径
解决默认存储容量不足的情况,最直接且最有效的方法就是挂载新的分区到该目录。但是在原有系统空间不变的情况下,所以采用软链接的方式,修改镜像和容器的存放路径达到同样的目的。
停掉Docker服务,service docker stop!!!!!!!一定要先停掉
# 停掉Docker服务
$ service docker stop
然后移动整个 /var/lib/docker 目录到空间不较大的目的路径。这时候启动 Docker 时发现存储目录依旧是 /var/lib/docker 目录,但是实际上是存储在数据盘 /data/docker 上了。
移动原有内容,创建软连接
# 移动原有的内容
$ mv /var/lib/docker /data/docker
# 进行链接
$ ln -sf /data/docker /var/lib/docker
修改Docker配置实现存储位置的修改
参考如下链接
知乎参考链接
一般Docker存在在/var/lib/docker下面,存放镜像和创建的容器,但是一般在系统盘上,会受到系统盘大小的影响。所以我们要设置配置文件修改Docker的存储位置。
$ docker info
Client:
Context: default
Debug Mode: false
Server:
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 2
Server Version: 20.10.12
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
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 io.containerd.runtime.v1.linux nvidia runc
Default Runtime: runc
Init Binary: docker-init
containerd version:
runc version:
init version:
Security Options:
apparmor
seccomp
Profile: default
Kernel Version: 5.8.0-50-generic
Operating System: Ubuntu 20.04.2 LTS
OSType: linux
Architecture: x86_64
CPUs: 48
Total Memory: 62.75GiB
Name: lhq323-TRX40-DESIGNARE
ID: ZXEV:5KRU:NMKO:ZVS4:2VM2:FQRT:W6TO:H2TV:XNWQ:XPGR:L3W3:NLTD
Docker Root Dir: /var/lib/docker
Debug Mode: false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
官方文档的修改办法是编辑 /etc/docker/daemon.json 文件:
sudo vi /etc/docker/daemon.json
默认情况下这个配置文件是没有的,这里实际也就是新建一个,然后写入以下内容:
{
"data-root": "/www/docker"
}
此文件还涉及默认源的设定,如果设定了国内源,那么实际就是在源地址下方加一行,写成:
注意"data-root"前面的逗号
{
"registry-mirrors": ["http://hub-mirror.c.163.com"],
"data-root": "/www/docker"
}
保存退出,然后重启 docker 服务:
systemctl restart docker
再次查看 docker 信息,可以看到目录已经变成了设定的新路径