当前位置: 首页 > 知识库问答 >
问题:

Docker Compose相对路径与Docker体积

吕俊才
2023-03-14

我有一个用于网站的docker compose文件,其中包括一系列用于各种目的的其他容器,包括一个mysql数据库,该数据库将具有持久性数据。此时,compose文件指定了数据的相对路径,例如:

 
mysql: 
  image: mysql:5.7
  container_name: sqldb
  volumes:
   - ./mysql_data/_data:/var/lib/mysql

以及文件夹结构:

 --mysql_data
 --static_content
 docker-compose.yml

这意味着在任何时候,我都可以通过复制整个文件夹并运行docker-compose up将整个站点(包括持久内容)移动到另一台服务器。

但是阅读有关docker卷的文章,听起来它是首选方法(加上使用“docker run”似乎不支持相对绑定装载路径,但可以在compose中工作),所以我想知道是否需要将这种方法更改为使用卷?这种相对约束方法是否存在内在错误?如果我切换到卷,在移动容器时,我是否必须手动移动卷(例如,这种方法如何将仅数据的卷从一个主机转移到另一个主机?)?

共有1个答案

张晔
2023-03-14

装载任何卷有四种可能的选项:

  1. 相对路径
  2. 绝对路径
  3. Docker卷默认路径
  4. 具有绝对路径的Docker卷

以下是上述示例

version: '3'
services:
    sample:
        image: sample
        volumes:
            - ./relative-path-volume:/var/data-two
            - /home/ubuntu/absolute-path-volume:/var/data-one
            - docker-volume-default-path-volume:/var/data-three
            - docker-volume-absolute-path-volume:/var/data-four
volumes:
  docker-volume-default-path-volume: {}
  docker-volume-absolute-path-volume:
    driver: local
    driver_opts:
      o: bind
      type: none
      device: /home/path/of/your/folder

相对路径:。/相对路径-卷:/var/data-2

绝对路径:/home/ubuntu/绝对路径-卷:/var/data-one

Docker Volume默认路径:Docker Volume默认路径卷:/var/data three

具有绝对路径的Docker卷:Docker卷绝对路径卷:/var/data-four

这适用于任何服务器,因为我们将卷设备属性自定义为相应的目录路径。

 类似资料:
  • 问题内容: 如果使用绝对路径,则无法将整个目录移动到新位置。如果使用相对路径,则无法将单个文件移动到新位置。 这里有什么解决方案?您是否设置了一个包含根路径并从那里开始的配置文件?还是您有类似的规则:永不移动文件? 我在某些项目中看到人们使用dirname( FILE )。我的意思是,为什么不简单地将其删除,因为目录名还是相对的(取决于文件所在的位置)? 问题答案: 您应该使用一个配置文件,该配置

  • Docker编写版本3.0。jar_file参数用于将jar-file复制到docker容器下的spring-boot jar

  • 主要内容:什么是当前工作目录,什么是绝对路径与相对路径,Python处理绝对路径和相对路径在介绍绝对路径和相对路径之前,先要了解一下什么是当前工作目录。 什么是当前工作目录 每个运行在计算机上的程序,都有一个“当前工作目录”(或 cwd)。所有没有从根文件夹开始的文件名或路径,都假定在当前工作目录下。 注意,虽然文件夹是目录的更新的名称,但当前工作目录(或当前目录)是标准术语,没有当前工作文件夹这种说法。 在 Python 中,利用 os.getcwd() 函数可以取得当前工作路径的字

  • 在 Linux 中,简单的理解一个文件的路径,指的就是该文件存放的位置,例如,在《 Linux文件系统的层次结构》中提到的 /home/cat 就表示的是 cat 文件所存放的位置。只要我们告诉 Linux 系统某个文件存放的准确位置,那么它就可以找到这个文件。 指明一个文件存放的位置,有 2 种方法,分别是使用 绝对路径和 相对路径。 我们知道,Linux 系统中所有的文件(目录)都被组织成以根

  • 我想引用一个固定位置的jar文件供多个可执行jar使用,而不是在每个可执行文件中包含该jar。我有以下设置工作良好 但是我想用绝对路径来处理commons-math3-3.6.1.jar,以便testgradle.jar这样的可执行JAR可以从它们所在的任何目录中使用它。但是,如果我更改testgradle.jar manifest以包括完整路径: 则命令: 从testgradle/build/l

  • 位置路径指定XML文档中节点的位置。路径可以是绝对路径或相对路径。 如果位置路径以选择的节点开始,则它是相对路径。 以下是使用相对路径定位元素的几个示例。 - 选择与节点相关的名字。 示例 在这个例子中,我们创建了一个示例XML文档students.xml,及其样式表文档students.xsl,它使用了XPath表达式。 以下是使用的示例XML。文件:students.xml - 文件:stud