使用docker目录挂载后,修改宿主机或者容器两个地方内容都会被改变。如果没有指定地址的话,所有地址都会跑到/var/lib/dcoker/volumes/目录下面

指定目录挂载

  1. -v 本地目录:docker容器地址
  2. 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

截屏2021-07-28 下午11.17.49.png

具名挂载

和匿名挂载唯一不同的就是启动完成后在/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"
    }
]