docker(容器卷挂载)

修改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 容器

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

相关阅读更多精彩内容

友情链接更多精彩内容