解析Docker与docker-compose中volume参数的使用

这篇具有很好参考价值的文章主要介绍了解析Docker与docker-compose中volume参数的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

数据卷Volume的概念

数据挂载的实现方式

宿主机路径挂载在docker/docker-compose中的使用

卷标映射挂载在docker/docker-compose中的使用

A.匿名挂载

B.具名挂载

参考文献:


数据卷Volume的概念

在docker内有个“数据卷持久化”的概念,也就是我们常说的“数据挂载”。它的作用是,将宿主机上的数据与容器内的数据形成映射,实现数据的共享或者数据的保存;当删除容器的时候,在宿主机上仍然能够保留文件目录,这就是Volume,数据卷。

数据挂载的实现方式

docker实现数据挂载的方式本质上分为两种:

  1. 通过宿主机绝对路径挂载
  2. 通过卷标映射挂载(又包括匿名挂载与具名挂载)

宿主机路径挂载在docker/docker-compose中的使用

使用方法:

# docker
docker run -itd -v 宿主机路径:容器路径 --name 容器名 镜像

# docker-compose.yaml
services:
  service_name:
    container_name: container_name
    image: image:tag
    restart: always
    volumes:
      - 宿主机路径:容器路径

引例如下:

docker compose 使用dockervolume,Docker,1024程序员节

卷标映射挂载在docker/docker-compose中的使用

当使用卷标的方式进行数据挂载的时候,容器数据具体存放在宿主机的什么路径其实并不直观,但是docker提供了方法查看数据卷的宿主机目录,具体查看的方法如下,后文会在引例中直观说明。

# 查看所有的数据卷
sudo docker volume ls
# 查看指定数据卷的详细信息 
sudo docker volume inspect 数据卷名称

A.匿名挂载

使用方法:

# docker
docker run -itd -v 容器路径 --name 容器名 镜像

# docker-compose.yaml
services:
  service_name:
    container_name: container_name
    image: image:tag
    restart: always
    volumes:
      - 容器路径

引例: 

docker compose 使用dockervolume,Docker,1024程序员节

这种情况下,我们可以看到,当我们通过docker volume ls查看卷标的时候,我们只能查看到其对应的“匿名”的数据卷。如下图所示,如果我们随便查看一个数据卷的详细信息(命令为docker volume inspect 数据卷),可以看出其挂载点实际是在/var/lib/docker/volumes/<uuid>/_data下面的,其中uuid是docker自动生成的,而/var/lib/docker是docker的默认路径

docker compose 使用dockervolume,Docker,1024程序员节

B.具名挂载

使用方法:

# docker
docker run -itd -v 数据卷名称:容器路径 --name 容器名 镜像

# docker-compose.yaml
services:
  service_name:
    container_name: container_name
    image: image:tag
    restart: always
    volumes:
      - 数据卷名称:容器路径
volumes:
  数据卷名称:

引例: 

docker compose 使用dockervolume,Docker,1024程序员节

这种情况下,我们可以看到,当我们通过docker volume ls查看卷标的时候,我们能查看到其对应的“具名”的数据卷。可以看出其挂载点实际是在/var/lib/docker/volumes/<数据卷名称>/_data下面的,/var/lib/docker是docker的默认路径

别急,特别针对docker-compose,还有另一个现象要看,如下:

docker compose 使用dockervolume,Docker,1024程序员节

可以看到,当我们通过docker-compose启动容器时,数据卷的名称多了一个software的前缀,而这正是docker-compose.yaml的存放路径,同时其挂载点在/var/lib/docker/volumes/<yaml路径_数据卷名称>/_data下面的。特别的,如果docker-compose在根目录执行,则数据卷的名称的前缀会默认设置为default。文章来源地址https://www.toymoban.com/news/detail-788887.html

参考文献:

  1. http://blog.csdn.net/qq_41929714/article/details/128627429
  2. http://blog.csdn.net/AV_woaijava/article/details/86685950
  3. http://blog.csdn.net/weixin_43431218/article/details/132341357

到了这里,关于解析Docker与docker-compose中volume参数的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • docker-compose:Dockerfile参数以及说明

    选择基础镜像,docker当前要生成的镜像以哪个镜像为基础。 容器 构建时 需要运行的命令(区别于后面的 CMD ) 有两种格式: shell命令格式 exec 格式 容器启动之后 要运行的命令 注意 CMD 一个文件中只能有一条指令 Dockerfile 。如果您列出多个, CMD 则只有最后一个会生效。 三种格

    2024年01月16日
    浏览(29)
  • 探索Docker-Compose:从基础到高级命令全解析

    在当今的软件开发过程中, 容器化 已成为一种重要的技术趋势。它允许开发者将应用及其所有依赖项打包在一起,确保应用在各种环境中都能一致地运行。 Docker 作为容器化技术的代表,提供了一个轻量级、便捷的平台来创建、部署和运行容器化应用。然而,当我们需要管理

    2024年01月18日
    浏览(30)
  • 【Docker】docker-compose基本使用

    一般的docker部署项目有如下弊端: 一个完整的项目通常需要用到多个容器,N个容器之间会形成依赖,比如项目启动时如果没有启动mysql容器,那么项目容器就启动不起来。没有启动es容器,kibana容器也启动不起来。所以, 容器启动之间的编排显得至关重要,项目庞大时我们很

    2024年02月16日
    浏览(22)
  • docker及docker-compose安装及使用

    docker安装及使用 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。 虚拟机:虚拟机是通过Hy

    2024年02月10日
    浏览(28)
  • 使用docker、docker-compose部署微服务

    这里已经在docker安装并启动好了Redis、nacos,配置好了“ruoyi-gateway-prod.yml”文件。 注意如果配置文件中有Redis、MySQL、nacos这些的连接信息,需要把IP地址改为服务器的公网地址或者内网地址,不会连接不到。 我这里以微服务版若依的网关服务为例,上传到指定目录。 官方文档

    2024年02月10日
    浏览(28)
  • Docker-compose的使用

    目录 Docker-compose 简介 docker-compose的安装 docker-compose.yaml文件说明 compose的常用命令 总结 Docker-compose 是用于定义和运行多容器的 Docker 应用程序的工具。可以使用YAML文件来配置应用程序的服务。(通俗讲是可以通过yml文件配置,批量运行多容器的docker应用程序) Compose的使用一

    2024年02月12日
    浏览(32)
  • 安装使用docker-compose

    Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排 Docker-Compose将所管理的容器分为三层,分别是工程(project),服务(service)以及容器(container)。Docker-Compose运行目录下的所有文件(docker-compose.yml,extends文件或环境变量文件等)组成一个工程,若

    2024年02月15日
    浏览(28)
  • 【Docker】(七)使用docker-compose一键部署环境

    本系列文章记录了从0开始学习Docker的过程,Docker系列历史文章: (一)基本概念与安装使用 (二)如何使用Docker发布一个SpringBoot服务 (三)使用registry远程镜像仓库管理镜像 (四)使用volume持久化Docker容器中的Redis数据 (五)使用bind mounts修改Docker容器中的Nginx配置 (六)

    2024年02月08日
    浏览(26)
  • docker部署(使用docker-compose)手把手教程

    docker-compose.yml 文件内容  安装成功后,运行 docker ps 出现如下报错  表示未启动docker,运行下列语句即可 安装完成后,运行 赋予权限即可 在服务器上单独新建文件夹名为ruoyi-admin dockerfile文件如下  执行如下命令 这就构建出本地的镜像了。   依次再构建出ruoyi/ruoyi-xxl-job-adm

    2024年02月01日
    浏览(32)
  • 使用 docker-compose 部署 Jenkins

    注:我是在虚拟机(Ubuntu)上部署了 docker-compose,然后才使用 docker-compose 部署 Jenkins! 关于如何在 Ubuntu 部署 docker-compose,可以看我其它的文章。 docker_jenkins_compose 目录下创建 docker-compose.yml 文件: 进入 docker-compose.yml 文件: 按下键盘上的 i ,进入可以编写的模式。 将下面的

    2024年02月17日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包