修改Docker存储路径
Docker的默认存储位置是/var/lib/docker,这个路径位于根文件系统下。因此,它属于/dev/mapper/centos-root挂载点,这个挂载点是根文件系统(/)的位置。
系统 / 路径一般容量比较小,例如50G,存储太多容器后很容易就把系统盘撑满,所以最好改到/home下面,这里容量会大点。
1、首先停止Docker服务
sudo systemctl stop docker
- 2、创建 Docker 的守护进程配置文件
sudo mkdir -p /etc/docker
sudo touch /etc/docker/daemon.json
- 3、编辑守护进程配置文件
编辑 /etc/docker/daemon.json,添加以下内容 这里举例,实际添加为自己的路径
{
"data-root": "/data/dockerData"
}
- 4、移动现有的 Docker 数据(可选)
sudo mv /var/lib/docker /data/dockerData
- 5、重新启动 Docker 服务
sudo systemctl start docker
- 6、检查 Docker 是否正确运行
docker info | grep 'Docker Root Dir'
这条命令应该显示出新的存储路径 /data/dockerData。
正文开始
- 容器卷挂载(宿主机地址/容器地址)
语法:docker run -it --privileged(开启读写权限) -v 宿主机地址:容器地址[:rw 容器权限默认是rw读写,如果只读为ro ] (挂载多组可以继续使用-v) 镜像id
docker run -it --name c1 --privileged -v /tmp/docker_data:/tmp/data centos:7
- 继承卷 docker run -it --volumes-from 要继承的容器名/id 镜像id
docker run -it --name c3 --volumes-from c2 centos:7
- 查看所有卷 (volume)
docker volume ls
[root@test tmp]# docker volume ls
DRIVER VOLUME NAME
local 1ef45a1e7c40cf4cbf757bf9dea5c13fc36532c2a2e0225a043a917f88e22011
local 02a27e73bfa4a92d13a5b9d879d98727dbe479ad316da733eca86c644f512534
local 54fd7b9d9b438777598977ac111cebeafc0ff99709c5767cc0bb309f9ab81b18
local dad3df2dc3459e2afa55dd62d65cce7618db13064cda78e8a94904d93e72ae06
- 查看容器挂载情况 直接打印详情 在Mounts可以查看
[root@z ~]# docker volume inspect
"Mounts": [
{
"Type": "bind",
"Source": "/tmp/docker_data2",
"Destination": "/tmp/data2",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
},
{
"Type": "bind",
"Source": "/tmp/docker_data",
"Destination": "/tmp/data",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
]
- 所有docker容器内的卷,没有指定目录的情况下都是在
/var/lib/docker/volumes/***/_data
通过具名挂载可以方便找到我们的一个卷,最好使用具名挂载
- 如何确定具名、匿名还是指定路径挂载:
-v 容器路径 匿名挂载
-v 卷名:容器路径 具名挂载
-v /宿主机路径:容器路径 指定路径挂载
容器同步数据卷
--volumes-form 容器