Docker8_2:Docker容器数据卷挂载:具名挂载和匿名挂载

Docker8_2:Docker容器数据卷挂载:具名挂载和匿名挂载

  • docker volume
  • 匿名挂载(不常用)
  • 具名挂载(常用)
  • 三种挂载方式

docker volume

docker volume相关命令:docker 卷操作命令

[root@localhost haokai]# docker volume --help

Usage:  docker volume COMMAND

Manage volumes

Commands:
  create      Create a volume
  inspect     Display detailed information on one or more volumes
  ls          List volumes
  prune       Remove all unused local volumes
  rm          Remove one or more volumes

Run 'docker volume COMMAND --help' for more information on a command.
[root@localhost haokai]#
# 查看本地所有卷(VOLUME):可以看到很多随机字符串的VOLUME NAME,这都是没起名字的VOLUME
[root@localhost haokai]# docker volume ls
DRIVER    VOLUME NAME
local     6ef90004b73f2054d68d099db7184d562c919460fcf84c2299f36d8a5fcd366e
local     60ce60654306d7b961c6cfac43d0f23d28faf7a2369cded201f5ca3ceded131e
local     6624be7964546816814bfa7a2c4b3a888fbad350c935d864b316b7550e48b988
local     62028db544996cef73eb436f926e25bf6dfbe1bf264d106436159bb49cf9074d

匿名挂载(不常用)

# 匿名挂载:(不指定主机目录,只指定容器目录,会自动生成主机的挂载目录)
-v 直接容器内路径
docker run -d -P --name nginx02 -v /etc/nginx/ nginx
# 参数解析
-P	大P,随机映射端口

查看挂载的信息

[root@localhost haokai]# docker volume ls
DRIVER    VOLUME NAME
local     6ef90004b73f2054d68d099db7184d562c919460fcf84c2299f36d8a5fcd366e
local     60ce60654306d7b961c6cfac43d0f23d28faf7a2369cded201f5ca3ceded131e
local     6624be7964546816814bfa7a2c4b3a888fbad350c935d864b316b7550e48b988
local     62028db544996cef73eb436f926e25bf6dfbe1bf264d106436159bb49cf9074d
local     b4522b1160ba112980d000a42f98975d4caca8a4586440f849b10b773082a138

具名挂载(常用)

具名挂载是不能再额外指定本机目录:否则会报错docker: Error response from daemon: invalid mode: /usr/local/apache-tomcat9.0.39/webapps/test.

# -v 卷名(给挂载的木有第目录起个名字代替随机字符串):/容器内路径
# 注意:起名字是不带/的,带/表示绝对路径
# -v 本机路径(/home/...):容器路径(/local/...)
# 具名挂载是不能再额外指定本机目录:否则会报错docker: Error response from daemon: invalid mode: /usr/local/apache-tomcat9.0.39/webapps/test.

docker run -d -P --name nginx03 -v juming-nginx:/etc/nginx/ nginx 

查看挂载的信息

[root@localhost haokai]#  docker volume ls
DRIVER    VOLUME NAME
local     6ef90004b73f2054d68d099db7184d562c919460fcf84c2299f36d8a5fcd366e
local     60ce60654306d7b961c6cfac43d0f23d28faf7a2369cded201f5ca3ceded131e
local     6624be7964546816814bfa7a2c4b3a888fbad350c935d864b316b7550e48b988
local     62028db544996cef73eb436f926e25bf6dfbe1bf264d106436159bb49cf9074d
local     b4522b1160ba112980d000a42f98975d4caca8a4586440f849b10b773082a138
local     juming-nginx

查看挂载的信息

# 查看VOLUME NAME的挂载信息
docker volume inspect VOLUME NAME

[root@localhost haokai]#  docker volume ls
DRIVER    VOLUME NAME
local     6ef90004b73f2054d68d099db7184d562c919460fcf84c2299f36d8a5fcd366e
local     60ce60654306d7b961c6cfac43d0f23d28faf7a2369cded201f5ca3ceded131e
local     6624be7964546816814bfa7a2c4b3a888fbad350c935d864b316b7550e48b988
local     62028db544996cef73eb436f926e25bf6dfbe1bf264d106436159bb49cf9074d
local     b4522b1160ba112980d000a42f98975d4caca8a4586440f849b10b773082a138
local     juming-nginx
[root@localhost haokai]# docker volume inspect juming-nginx
[
    {
        "CreatedAt": "2022-01-06T21:34:49-05:00",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/juming-nginx/_data",
        "Name": "juming-nginx",
        "Options": null,
        "Scope": "local"
    }
]
[root@localhost haokai]#

所有docker容器内的卷,没有指定目录的情况下都是在"/var/lib/docker/volumes/卷名(VOLUME NAME)/_data";
通过具名挂载的方式,可以快速找到一个卷,大多数情况都使用具名挂载。

三种挂载方式

# 如何确定是具名挂载、匿名挂载、指定路径挂载
-v 容器内路径					匿名挂载
-v 卷名:容器内路径			具名挂载
-v /容器外路径:/容器内路径		指定路径挂载,看前面是否有/

# 通过 -v 容器内路径:ro(readonly 只读) 或 rw(默认:readwrite 可读可写) 改变读写权限

# 一旦设置了容器权限,这时容器对我们挂载出来的内容就有限定了,针对容器而言。
# ro也就是不能在容器内操作了,只能通过外部改变数据同步容器,容器内不能在进行操作

docker run -d -P --name nginx03 -v juming-nginx:/etc/nginx/:ro nginx
docker run -d -P --name nginx03 -v juming-nginx:/etc/nginx/:rw nginx

你可能感兴趣的:(docker,docker,容器,运维)