本文主要是介绍docker 挂载卷,必会的docker数据管理(三),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
回顾
命令回顾
卷挂载
方式一:-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 自动下载。
卷挂载
前言:假设我要修改容器中的配置,每次都得进入容器后台找到配置目录进行修改,这样非常的麻烦,所以这个时候就需要把容器中的配置挂载到外部 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 层。
挂载之后发现并不能访问 index.html,原因是 -v 挂载,会把容器中的内容清空,因为外部 linux 环境的目录是空的,所以映射给容器时,就清空了。
这个时候需要自己手动添加 html 页面,vi index.html,编写内容如下:
docker inspect 容器ID / 容器名
# 查看资源详细信息。Binds 是容器挂载的路径。
- 这种挂载方式并不推荐。
方式二:复制容器的文件
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 --helpUsage: docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
访问成功,访问的是默认首页。 如果用 -v 命令,挂载的目录是没有任何文件的,而且容器中的文件也会被清空。但这种方式也不是最优方式。
方式三:匿名挂载
docker run -d -p 80:80 --name mynginx \
-v /usr/share/nginx/html \
-v /etc/nginx \
daee903b4e43# 斜杠:换行作用。匿名挂载的缺点是不好维护。
docker ps
# 查看运行中的容器
docker inspect 912247bf4258
# 命令语法:docker inspect 资源ID / 资源名称,资源可以是镜像,也可以是容器。意思是查看资源的详细信息。下面我们查看容器挂载的路径在哪。
第四种方式:具名挂载(推荐)
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 inspect 容器ID / 容器名:查看挂载信息。
结语:
至此,docker 挂载的内容全部介绍完了,多复习研究,官网也是介绍了一下。如果对你有帮助,欢迎留言讨论。
这篇关于docker 挂载卷,必会的docker数据管理(三)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!