Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker Compose相对路径与Docker卷_Docker_Docker Compose_Docker Volume - Fatal编程技术网

Docker Compose相对路径与Docker卷

Docker Compose相对路径与Docker卷,docker,docker-compose,docker-volume,Docker,Docker Compose,Docker Volume,我有一个网站的docker compose文件,其中包括一个mysql数据库,该数据库将具有持久性数据。此时,合成文件指定数据的相对路径,例如: mysql: image: mysql:5.7 container_name: sqldb volumes: - ./mysql_data/_data:/var/lib/mysql mysql: 图片:mysql:5.7 容器名称:sqldb 卷数: -./mysql\u data/\u data:/var/lib/mysql 以及

我有一个网站的docker compose文件,其中包括一个mysql数据库,该数据库将具有持久性数据。此时,合成文件指定数据的相对路径,例如:

mysql: image: mysql:5.7 container_name: sqldb volumes: - ./mysql_data/_data:/var/lib/mysql mysql: 图片:mysql:5.7 容器名称:sqldb 卷数: -./mysql\u data/\u data:/var/lib/mysql 以及文件夹结构:

--mysql_data --static_content docker-compose.yml --mysql\u数据 --静态内容 docker-compose.yml 这意味着,通过复制整个文件夹并运行docker compose up,我可以随时将整个站点(包括持久化内容)移动到另一台服务器

但是阅读有关docker卷的文章,听起来它是首选方法(加上使用“docker run”似乎不支持相对绑定装载路径,但在compose中工作),所以我想知道是否需要更改此方法以使用卷?这种相对约束方法是否存在固有的问题?如果切换到卷,移动容器时是否必须手动移动卷(例如,此方法)?

Docker中数据的持久性 有四种可能的选项可以装载任何卷

  • 相对路径
  • 绝对路径
  • Docker卷默认路径
  • 具有绝对路径的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
    
    相对路径
    /Relative Path volume:/var/data two

    绝对路径
    /home/ubuntu/Absolute-Path-volume:/var/data-one

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

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


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

    这种方法适用于撰写案例,但不适用于swarm模式。您还可以将带有客户路径的命名卷作为使用swarm模式的文件夹路径。不用担心现在就运行。嗨,Jinna,谢谢你的帮助,但是在不同的环境下,不同的文件夹结构不会有可移植性问题吗?我知道我无论如何都可以docker卷,但我认为相对路径绑定具有可移植性的优势(尽管我没有考虑Swarm,这绝对是一个好的观点…)好东西,谢谢!这是伟大的设置为个人使用等当地的东西。。。