更改Docker的数据目录
日常记录篇
确认非k8s创建的容器
docker inspect `docker ps -qa` -f '{{.Name}}' | grep -v '/k8s_'
- 通过k8s创建的容器前缀都有带
k8s_
的字眼。- 如果 docker 或 docker-compose 创建的有该名称开头的,请自行辨别。
- 停止掉相关的容器
驱逐pod
$ kubectl drain k8s-node01 --ignore-daemonsets
node/k8s-node01 cordoned
WARNING: ignoring DaemonSet-managed Pods: kube-mon/node-exporter-gvt8d, kube-system/calico-node-xvwfp
evicting pod kube-mon/prometheus-c698f5d8d-74fw4
evicting pod kube-mon/grafana-65949b6955-csxrp
pod/grafana-65949b6955-csxrp evicted
pod/prometheus-c698f5d8d-74fw4 evicted
node/k8s-node01 evicted
停服务
$ systemctl stop docker kubelet
迁移docker目录的数据
$ mv -fv /app/docker/data/ /data/docker/data
修改docker配置文件
sed -ri 's@( "data-root":).*@\1 "/data/docker/data"@g' /data/docker/conf/daemon.json
cat /data/docker/conf/daemon.json
{
"data-root": "/data/docker/data"
"exec-opts": ["native.cgroupdriver=systemd"],
"registry-mirrors": [
"https://1nj0zren.mirror.aliyuncs.com",
"https://docker.mirrors.ustc.edu.cn",
"http://f1361db2.m.daocloud.io",
"https://registry.docker-cn.com"
]
}
- 默认的daemon.json,在
/etc/docker
目录下。- 修改的字段是
data-root
或graph
字眼
启动服务
$ systemctl start docker.service kubelet.service
启动原来非k8s的启动的容器
取消驱逐
$ kubectl uncordon k8s-node01
node/k8s-node01 uncordoned
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!