修改Docker容器和镜像默认存储位置

举报
GeminiMp 发表于 2024/04/12 13:30:08 2024/04/12
【摘要】 通常,当你开始使用docker时,我们并不太关心Docker 用于存储镜像和容器的默认目录。当使用Docker进行更多实验时,Docker开始占用大量的空间时,你不得不按下紧急按钮。所以现在是时候把故障排除放在如何改变docker的默认存储位置了在试图改变Docker的默认存储位置时,我们必须知道一些重要的信息。docker 当前使用的默认存储位置docker 当前使用的存储驱动程序镜像和容...

通常,当你开始使用docker时,我们并不太关心Docker 用于存储镜像和容器的默认目录。当使用Docker进行更多实验时,Docker开始占用大量的空间时,你不得不按下紧急按钮。所以现在是时候把故障排除放在如何改变docker的默认存储位置了

在试图改变Docker的默认存储位置时,我们必须知道一些重要的信息。

docker 当前使用的默认存储位置
docker 当前使用的存储驱动程序
镜像和容器要存放的新存储空间

Docker 默认的位置在/var/lib/docker,当前所有的镜像、容器都存储在这儿。如果你有任何在运行的容器,停止这些容器,并确保没有容器在运行,然后运行以下命令,确定当前Docker使用的存储驱动。

查看docker当前信息

  • Storage Driver: overlay2 当前Docker使用的存储驱动
  • Docker Root Dir: /var/lib/docker 当前docker使用的数据目录
docker info
 
Client:
 Context:    default
 Debug Mode: false
 Plugins:
  app: Docker App (Docker Inc., v0.9.1-beta3)
  buildx: Build with BuildKit (Docker Inc., v0.5.1-docker)
  scan: Docker Scan (Docker Inc., v0.8.0)
 
Server:
 Containers: 8
  Running: 7
  Paused: 0
  Stopped: 1
 Images: 53
 Server Version: 20.10.7
 Storage Driver: overlay2
  Backing Filesystem: xfs
  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 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: d71fcd7d8303cbf684402823e425e9dd2e99285d
 runc version: b9ee9c6314599f1b4a7f497e1f1f856fe433d3b7
 init version: de40ad0
 Security Options:
  seccomp
   Profile: default
 Kernel Version: 3.10.0-1160.31.1.el7.x86_64
 Operating System: CentOS Linux 7 (Core)
 OSType: linux
 Architecture: x86_64
 CPUs: 8
 Total Memory: 31.26GiB
 Name: nsg.novalocal
 ID: NQPU:DLYX:KYYX:H6QQ:CECE:MZS4:VGOW:HPX3:Q65I:ZJ3K:5SGQ:N2FP
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Username: bongmu
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  192.168.10.82:5000
  127.0.0.0/8
 Live Restore Enabled: false
 Default Address Pools:
   Base: 172.18.0.0/24, Size: 24
   Base: 172.18.1.0/24, Size: 24
   Base: 172.18.2.0/24, Size: 24
   Base: 172.18.3.0/24, Size: 24

停止docker服务

systemctl stop docker

修改docker服务启动文件

注意:

原配置保持不变,添加--graph=/mnt/docker,/mnt/docker是新的存储位置

以下两个文件均可修改docker配置:

/etc/systemd/system/multi-user.target.wants/docker.service
/usr/lib/systemd/system/docker.service

将原先目录下所有的文件和目录拷贝到新目录下

[root@localhost mnt]# cp -rf /var/lib/docker/* /mnt/docker/
 
[root@localhost docker]# pwd
/mnt/docker
[root@localhost docker]# ls
builder  buildkit  containers  image  network  overlay2  plugins  runtimes  swarm  tmp  trust  volumes

重新加载配置并启动

[root@localhost docker]# systemctl daemon-reload
[root@localhost docker]# systemctl restart docker
docker info
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。