docker 匿名挂载能改成具名挂载吗?

docker 配置相关
docker 匿名挂载能改成具名挂载吗?
匿名挂载阅读性太差了

“Devil组”引证GPT后的撰写:
是的,Docker容器的匿名挂载可以改成具名挂载。具名挂载可以提高挂载目录的可读性和可维护性,同时还可以更好地控制挂载目录的权限和访问控制。

要将匿名挂载改成具名挂载,需要在启动容器时指定-v参数,将要挂载的宿主机目录和容器内的目录进行映射。例如,假设要将宿主机上的/data目录挂载到容器内的/mnt目录上,可以使用以下命令:

docker run -v /data:/mnt myimage


其中,myimage是容器所使用的镜像名称或ID。

通过指定-v参数,Docker会将宿主机上的/data目录与容器内的/mnt目录进行映射,并自动创建/mnt目录。这样,容器内的操作就可以直接访问宿主机上的/data目录,而不需要使用匿名挂载。

需要注意的是,具名挂载需要手动创建宿主机上的挂载目录,并确保容器内的用户和组拥有足够的权限来访问这些目录。另外,在使用具名挂载时,需要注意避免多个容器同时挂载同一个目录,以免造成文件冲突和权限问题。

  • 给你找了一篇非常好的博客,你可以看看是否有帮助,链接:docker具名挂载与匿名挂载
  • 另外, 我还从CSDN技能树中找了一些相关资料给你, 你可以学习下:
  • 相关参考资料: Docker安装和使用
  • 除此之外, 这篇博客: docker容器数据卷 - 具名挂载和匿名挂载中的 具名挂载 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 挂载到指定名称的目录;

    # /xxx 是目录, xxx是卷名,没有斜杆的就是卷名
    docker run -d -v 卷名:容器目录 tomcat 
    
    # 查找卷名所在的目录
    docker volume inspect 卷名
    

    光说无益,测试一下,先创建容器并且挂载好目录

    docker run -d --name my_tomcat  -v my_folder:/data/my_folder tomcat
    

    使用 inspect 命令查看容器信息

    docker inspect my_tomcat
    

    在打印信息中找到 Mounts 项,其中Source的目录就是宿主机的目录;Destination的目录是挂载的容器目录;

    "Mounts": [
        {
            "Type": "volume",
            "Name": "my_folder",
            "Source": "/var/lib/docker/volumes/my_folder/_data",
            "Destination": "/data/my_folder",
            "Driver": "local",
            "Mode": "z",
            "RW": true,
            "Propagation": ""
        }
    ]
    

    接着进入容器

    docker exec -it my_tomcat /bin/bash
    
    # 在容器内也已经创建好了这个目录
    root@ef94ff8928a1:/data/my_folder# pwd
    /data/my_folder