若遇到 docker 空间已满,需要进行 docker 迁移查看 docker 镜像和容器存储目录的空间大小
-$ sudo du -sh /var/lib/docker/
停止 docker 服务
-$ sudo systemctl stop docker
将 docker 迁移到大容量的磁盘
-$ sudo mkdir -p /app/docker/lib/
-$ sudo rsync -avz /var/lib/docker /app/docker/lib/
在/etc/docker/下创建daemon.json,从https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file 拷贝 json 文件。
{
"allow-nondistributable-artifacts": [],
"api-cors-header": "",
"authorization-plugins": [],
"bip": "",
"bridge": "",
"cgroup-parent": "",
"cluster-advertise": "",
"cluster-store": "",
"cluster-store-opts": {},
"containerd": "/run/containerd/containerd.sock",
"containerd-namespace": "docker",
"containerd-plugins-namespace": "docker-plugins",
"data-root": "",
"debug": true,
"default-address-pools": [
{
"base": "172.30.0.0/16",
"size": 24
},
{
"base": "172.31.0.0/16",
"size": 24
}
],
"default-cgroupns-mode": "private",
"default-gateway": "",
"default-gateway-v6": "",
"default-network-opts": {},
"default-runtime": "runc",
"default-shm-size": "64M",
"default-ulimits": {
"nofile": {
"Hard": 64000,
"Name": "nofile",
"Soft": 64000
}
},
"dns": [],
"dns-opts": [],
"dns-search": [],
"exec-opts": [],
"exec-root": "",
"experimental": false,
"features": {},
"fixed-cidr": "",
"fixed-cidr-v6": "",
"group": "",
"hosts": [],
"icc": false,
"init": false,
"init-path": "/usr/libexec/docker-init",
"insecure-registries": [],
"ip": "0.0.0.0",
"ip-forward": false,
"ip-masq": false,
"iptables": false,
"ip6tables": false,
"ipv6": false,
"labels": [],
"live-restore": true,
"log-driver": "json-file",
"log-level": "",
"log-opts": {
"cache-disabled": "false",
"cache-max-file": "5",
"cache-max-size": "20m",
"cache-compress": "true",
"env": "os,customer",
"labels": "somelabel",
"max-file": "5",
"max-size": "10m"
},
"max-concurrent-downloads": 3,
"max-concurrent-uploads": 5,
"max-download-attempts": 5,
"mtu": 0,
"no-new-privileges": false,
"node-generic-resources": [
"NVIDIA-GPU=UUID1",
"NVIDIA-GPU=UUID2"
],
"oom-score-adjust": 0,
"pidfile": "",
"raw-logs": false,
"registry-mirrors": [],
"runtimes": {
"cc-runtime": {
"path": "/usr/bin/cc-runtime"
},
"custom": {
"path": "/usr/local/bin/my-runc-replacement",
"runtimeArgs": [
"--debug"
]
}
},
"seccomp-profile": "",
"selinux-enabled": false,
"shutdown-timeout": 15,
"storage-driver": "",
"storage-opts": [],
"swarm-default-advertise-addr": "",
"tls": true,
"tlscacert": "",
"tlscert": "",
"tlskey": "",
"tlsverify": true,
"userland-proxy": false,
"userland-proxy-path": "/usr/libexec/docker-proxy",
"userns-remap": ""
}
编辑/etc/docker/daemon.json,添加参数,将 docker 的目录迁移绑定
"data-root ": "/app/docker/lib/docker "
"graph ": "/app/docker/lib/docker "
在/etc/fstab 添加:
/var/lib/docker /app/docker/lib/docker none bind 0 0
-$ vim /usr/lib/systemd/system/docker.service
在 ExecStart 的行尾加上--graph=/app/docker/lib/docker
重载和重启 docker 服务
-$sudo systemctl daemon-reload && systemctl restart docker
报错,failed(Result: start-limit-hit)
-$ mv daemon.json daemon.conf
检查 docker 是否绑定新目录
-$ sudo docker info
删除 docker 旧目录
-$ sudo rm -rf /var/lib/docker