本文被帮忙文档:

  • 链接1
  • 链接2

CentOS7批改Docker容器和镜像默认存储地位

通常,当你开始应用docker时,咱们并不太关怀Docker 用于存储镜像和容器的默认目录。当应用Docker进行更多试验时,Docker开始占用大量的空间时,你不得不按下紧急按钮。所以当初是时候把故障排除放在如何扭转docker的默认存储地位了

在试图扭转Docker的默认存储地位时,咱们必须晓得一些重要的信息。

docker 以后应用的默认存储地位
docker 以后应用的存储驱动程序
镜像和容器要寄存的新存储空间

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

1、查看docker以后信息

注:此处须要留神docker的两个信息:

  • Storage Driver: overlay2 以后Docker应用的存储驱动
  • Docker Root Dir: /var/lib/docker 以后docker应用的数据目录
docker info
[root@localhost ~]# docker infoContainers: 0 Running: 0 Paused: 0 Stopped: 0Images: 0Server Version: 18.09.6Storage Driver: overlay2 Backing Filesystem: xfs Supports d_type: true Native Overlay Diff: falseLogging Driver: json-fileCgroup Driver: cgroupfsPlugins: Volume: local Network: bridge host macvlan null overlay Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslogSwarm: inactiveRuntimes: runcDefault Runtime: runcInit Binary: docker-initcontainerd version: bb71b10fd8f58240ca47fbb579b9d1028eea7c84runc version: 2b18fe1d885ee5083ef9f0838fee39b62d653e30init version: fec3683Security Options: seccomp  Profile: defaultKernel Version: 3.10.0-514.el7.x86_64Operating System: CentOS Linux 7 (Core)OSType: linuxArchitecture: x86_64CPUs: 1Total Memory: 976.5MiBName: localhost.localdomainID: 3EGY:424H:ER2C:CBQ7:KUD5:SFRJ:TVDK:XV4Y:AFYJ:SOOL:7OM6:65K5Docker Root Dir: /var/lib/dockerDebug Mode (client): falseDebug Mode (server): falseRegistry: https://index.docker.io/v1/Labels:Experimental: falseInsecure Registries: 127.0.0.0/8Live Restore Enabled: falseProduct License: Community Engine

2、进行docker服务

systemctl stop docker

3、批改docker服务启动文件

[root@localhost ~]# vim /usr/lib/systemd/system/docker.serviceExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --graph=/mnt/docker

留神:

  • 原配置放弃不变,增加--graph=/mnt/docker,/mnt/docker是新的存储地位
  • 以下两个文件均可批改docker配置:

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

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

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

5、从新加载配置并启动

[root@localhost docker]#  systemctl daemon-reload[root@localhost docker]# systemctl start docker

6、查看docker信息

[root@localhost docker]# docker infoContainers: 0 Running: 0 Paused: 0 Stopped: 0Images: 0Server Version: 18.09.6Storage Driver: overlay2 Backing Filesystem: xfs Supports d_type: true Native Overlay Diff: falseLogging Driver: json-fileCgroup Driver: cgroupfsPlugins: Volume: local Network: bridge host macvlan null overlay Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslogSwarm: inactiveRuntimes: runcDefault Runtime: runcInit Binary: docker-initcontainerd version: bb71b10fd8f58240ca47fbb579b9d1028eea7c84runc version: 2b18fe1d885ee5083ef9f0838fee39b62d653e30init version: fec3683Security Options: seccomp  Profile: defaultKernel Version: 3.10.0-514.el7.x86_64Operating System: CentOS Linux 7 (Core)OSType: linuxArchitecture: x86_64CPUs: 1Total Memory: 976.5MiBName: localhost.localdomainID: 3EGY:424H:ER2C:CBQ7:KUD5:SFRJ:TVDK:XV4Y:AFYJ:SOOL:7OM6:65K5Docker Root Dir: /mnt/dockerDebug Mode (client): falseDebug Mode (server): falseRegistry: https://index.docker.io/v1/Labels:Experimental: falseInsecure Registries: 127.0.0.0/8Live Restore Enabled: falseProduct License: Community Engine

注:

查看==Docker Root Dir: /mnt/docker==信息可看到,docker服务存储地位已批改