使用docker目录挂载后,修改宿主机或者容器两个地方内容都会被改变。如果没有指定地址的话,所有地址都会跑到/var/lib/dcoker/volumes/目录下面
指定目录挂载
-v 本地目录:docker容器地址docker run -p 8080:8080 -d --name tomcat1 -v /home/ubuntu/:/usr/local/tomcat/webapps/static tomcat
匿名挂载
匿名挂载不指定宿主机目录地址默认会存在/var/lib/dcoker/volumes/目录下面 。只指定docke容器的目录地址。
在/volumes下会创建一个文件夹例如 29c24bd116a16cc46de6b6c7ac7de44befc4ab3d7c6ab09877b19039ceca8d51/_data/,你要问为什么不使用id名呢,这样容易找,我也不知道。~ 可以使用docker inspect e3f731691651命令找Mounts => Name 就可以找到,容器自动创建的匿名挂载目录名称
-v docker容器的地址
docker run -p 8080:8080 -d --name tomcat1 -v /usr/local/tomcat/webapps/static tomcat
具名挂载
和匿名挂载唯一不同的就是启动完成后在/var/lib/docker/volumes里面的名字是自定义的
-v 名字:/usr/local/tomcat/webapps
sudo docker run -p 8081:8080 -d -v test_tomcat:/usr/local/tomcat/webapps --name tomcat05 tomcat
权限
只读
ro => 只读权限,在容器里面只能读取,不能修改添加。
docker run -P -d -v test_readonly:/home:ro tomcat
读写
rw => 读写权限
docker run -P -d -v test_readonly:/home:rw tomcat
挂载关系
输入当前目录的名字,查看挂载信息。我觉着还不如直接查看docker inspect 66d5c586f04e直接能查看所有信息~
docker volume inspect test_readonly
[
{
"CreatedAt": "2021-07-29T13:05:59Z",
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/test_readonly/_data",
"Name": "test_readonly",
"Options": null,
"Scope": "local"
}
]
