docker 配置相关
docker 匿名挂载能改成具名挂载吗?
匿名挂载阅读性太差了
“Devil组”引证GPT后的撰写:
是的,Docker容器的匿名挂载可以改成具名挂载。具名挂载可以提高挂载目录的可读性和可维护性,同时还可以更好地控制挂载目录的权限和访问控制。
要将匿名挂载改成具名挂载,需要在启动容器时指定-v参数,将要挂载的宿主机目录和容器内的目录进行映射。例如,假设要将宿主机上的/data目录挂载到容器内的/mnt目录上,可以使用以下命令:
docker run -v /data:/mnt myimage
其中,myimage是容器所使用的镜像名称或ID。
通过指定-v参数,Docker会将宿主机上的/data目录与容器内的/mnt目录进行映射,并自动创建/mnt目录。这样,容器内的操作就可以直接访问宿主机上的/data目录,而不需要使用匿名挂载。
需要注意的是,具名挂载需要手动创建宿主机上的挂载目录,并确保容器内的用户和组拥有足够的权限来访问这些目录。另外,在使用具名挂载时,需要注意避免多个容器同时挂载同一个目录,以免造成文件冲突和权限问题。
挂载到指定名称的目录;
# /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