具名挂载和匿名挂载
# 匿名挂载
-v 容器内路径!
docker run -d -P --name nginx01 -v /etc/nginx nginx
# 查看所有卷的情况
[root@iz8g9301trfnpxz data]# docker volume ls
# 这里发现
DRIVER VOLUME NAME
local 779306d85877e4a2ebacb40e6c4bfea39e1c6123edde1eec7273d5cb445801d4
# 这种就是咱们的匿名挂载,我们在-v 只写了容器内的路径,没有写外部的路径
# 具名挂载
[root@iz8g9301trfnpxz data]# docker run -d -P --name nginx03 -v juming-nginx:/etc/nginx nginx
33d87d73cf81951d8cdede7b02f1454c20c39864a182f5cd3072b010f22c5451
[root@iz8g9301trfnpxz data]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
33d87d73cf81 nginx "/docker-entrypoint.…" 6 seconds ago Up 5 seconds 0.0.0.0:32769->80/tcp nginx03
8ec30de68329 nginx "/docker-entrypoint.…" 3 minutes ago Up 3 minutes 0.0.0.0:32768->80/tcp nginx02
[root@iz8g9301trfnpxz data]# docker volume ls
DRIVER VOLUME NAME
local 779306d85877e4a2ebacb40e6c4bfea39e1c6123edde1eec7273d5cb445801d4
local a4481d7a0fec6c3af8bd2c17be14e2e48b7c3b9debb3a99c498c44ec135519b6
local abe53729eb4d2a97c8d8c52c3b00cb094a7dc5490435b8f27dcc03599931e302
local juming-nginx
[root@iz8g9301trfnpxz data]#
# 通过-v 卷名 :容器内路径
# 通过
# docker volume inspect
# 查看一下这个卷
[root@iz8g9301trfnpxz data]# docker volume inspect juming-nginx
[
{
"CreatedAt": "2020-07-31T10:21:13+08:00",
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/juming-nginx/_data",
"Name": "juming-nginx",
"Options": null,
"Scope": "local"
}
]
[root@iz8g9301trfnpxz data]#
# 所有的docker容器你的卷,没有指定目录的情况下都是在`/var/lib/docker/volumes/xxx/_data
# 我们通过具名挂载可以方便的找到我们的一个卷,大多数情况在使用的`具名挂载`
# 如何确定是具名挂载还是匿名挂载,还是指定路径挂载
-v 容器内路径 # 匿名挂载
-v 卷名 : 容器内路径 # 具名挂载
-v /宿主机路径: 容器内路径 # 指定路径挂载
拓展
# 通过 -v 容器内路径: ro rw 改变读写权限
ro readonly
rw readwrite
# 一旦这个了设置了容器权限,容器对我们挂载出来的内容就有限定了!
docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:ro nginx
docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:rw nginx
# ro 说明这个路径只能通过宿主机操作,容器内部是无法操作的
操作
初始dockerfile