目录

回顾

命令回顾

卷挂载

方式一:-v 命令

方式二:复制容器的文件

1. 启动容器,先不挂载

2. docker cp 把运行中的 nginx 的内容复制出来

方式三:匿名挂载

第四种方式:具名挂载(推荐)

volume 维护卷

具名挂载实例

结语:


回顾

首先我们要安装 镜像 /【容器】,到 docker hub 的官网下载 (https://hub.docker.com/search?q=redis&type=image)。

命令回顾

# 启动 docker
systemctl  start  docker
# 查看 docker 状态
systemctl  status docker
#  停止 docker 
systemctl  stop  docker 
# 查看、启动、停止容器
docker ps -a   或  docker ps
docker start 容器id / 容器名
docker stop 容器id / 容器名
# 批量启动、停止、删除容器
docker start $(docker ps -aq)
docker stop $(docker ps -aq)
docker rm $(docker ps -aq)
# 启动一个容器(第一次运行)


docker  run  -d  --name  [自定义名]  -p  宿主机IP(Linux暴露外部的IP):容器IP  [镜像id / 镜像名:[tag] ] 

例如: docker run --name my-redis -p 6379:6379 -d redis:6.0  。 如果没有镜像会到 docker  hub 自动下载。

如何查看docker挂载的盘符 docker查看挂载情况_如何查看docker挂载的盘符

卷挂载

前言:假设我要修改容器中的配置,每次都得进入容器后台找到配置目录进行修改,这样非常的麻烦,所以这个时候就需要把容器中的配置挂载到外部 linux 环境。

方式一:-v 命令

# 将主机操作系统目录直接映射进容器
docker run --name mynginx -p 80:80 -v /usr/local/etc/nginx:/usr/share/nginx/html -d daee903b4e43
# --name:给容器自定义名称
# -p:端口暴露给外网
# -v:卷挂载, linux 目录:容器目录,需要注意的是,linux 目录无需到html 层。

如何查看docker挂载的盘符 docker查看挂载情况_html_02

 

挂载之后发现并不能访问 index.html,原因是 -v 挂载,会把容器中的内容清空,因为外部 linux 环境的目录是空的,所以映射给容器时,就清空了。

如何查看docker挂载的盘符 docker查看挂载情况_docker_03

这个时候需要自己手动添加 html 页面,vi index.html,编写内容如下: 

如何查看docker挂载的盘符 docker查看挂载情况_云原生_04

如何查看docker挂载的盘符 docker查看挂载情况_如何查看docker挂载的盘符_05

 

docker inspect 容器ID /  容器名

# 查看资源详细信息。Binds 是容器挂载的路径。

如何查看docker挂载的盘符 docker查看挂载情况_nginx_06

  • 这种挂载方式并不推荐

 

方式二:复制容器的文件

1. 启动容器,先不挂载

例如: docker run -d --name my-nginx -p 88:80 daee903b4e43

# 命令语法:docker run -d --name [自定义名] -p 宿主机IP(Linux暴露外部的IP):容器IP [镜像id / 镜像名:[tag] ]

2. docker cp 把运行中的 nginx 的内容复制出来

[root@localhost ~]# docker cp --help

Usage:  docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
    docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH

如何查看docker挂载的盘符 docker查看挂载情况_docker_07

 访问成功,访问的是默认首页。 如果用 -v 命令,挂载的目录是没有任何文件的,而且容器中的文件也会被清空。但这种方式也不是最优方式。

如何查看docker挂载的盘符 docker查看挂载情况_docker_08

 

方式三:匿名挂载

docker run -d -p 80:80 --name mynginx \
 -v /usr/share/nginx/html \
 -v /etc/nginx \
 daee903b4e43# 斜杠:换行作用。匿名挂载的缺点是不好维护。

如何查看docker挂载的盘符 docker查看挂载情况_html_09

docker ps

# 查看运行中的容器

docker inspect 912247bf4258

# 命令语法:docker inspect 资源ID / 资源名称,资源可以是镜像,也可以是容器。意思是查看资源的详细信息。下面我们查看容器挂载的路径在哪。

如何查看docker挂载的盘符 docker查看挂载情况_如何查看docker挂载的盘符_10

如何查看docker挂载的盘符 docker查看挂载情况_云原生_11

第四种方式:具名挂载(推荐)

volume 维护卷

volume 常用命令
docker volume --help  :帮助命令
docker volume ls  :查看挂载名列表
docker volume create  :创建
docker volume inspect  :查看信息,例如 docker volume inspect 3ecc56524f6972fde27d4e819b76fd806b8ec1e1db8b87a42210a2823182a917
docker volume rm / prune  :移除
# 以上命令自己去尝试,在此省略。
  • docker volume create 挂载名
    创建具名挂载,例如:docker volume create nginx-conf 。
    可以省略,挂载时必须命名。
  • docker volume inspect 挂载名
    查看挂载信息,例如:docker volume inspect nginx-conf

具名挂载实例

docker run -d -P --name mynginx \
 -v nginx-conf:/etc/nginx \
 -v nginx-html:/usr/share/nginx/html \
 daee903b4e43# -v 挂载名: 容器路径

如何查看docker挂载的盘符 docker查看挂载情况_nginx_12

docker inspect 容器ID / 容器名:查看挂载信息。 

 

如何查看docker挂载的盘符 docker查看挂载情况_nginx_13

如何查看docker挂载的盘符 docker查看挂载情况_nginx_14

 

如何查看docker挂载的盘符 docker查看挂载情况_如何查看docker挂载的盘符_15

结语:

至此,docker 挂载的内容全部介绍完了,多复习研究,官网也是介绍了一下。如果对你有帮助,欢迎留言讨论。