美文网首页
Docker踩坑指南

Docker踩坑指南

作者: LazzMan | 来源:发表于2020-10-22 21:22 被阅读0次

    使用docker compose数据卷绑定宿主机目录时,目录不存在时启动报错

    docker compose在Version 2.3绑定数据卷时添加了长语法绑定卷支持。例如下面这种形式:

    version: "2.4"
    services:
      web:
        image: nginx:alpine
        ports:
          - "80:80"
        volumes:
          - type: volume
            source: mydata
            target: /data
            volume:
              nocopy: true
          - type: bind
            source: ./static
            target: /opt/app/static
    networks:
      webnet:
    volumes:
      mydata:
    

    短语法则是这种形式:

    volumes:
      # Just specify a path and let the Engine create a volume
      - /var/lib/mysql
    
      # Specify an absolute path mapping
      - /opt/data:/var/lib/mysql
    
      # Path on the host, relative to the Compose file
      - ./cache:/tmp/cache
    
      # User-relative path
      - ~/configs:/etc/configs/:ro
    
      # Named volume
      - datavolume:/var/lib/mysql
    

    创建绑定安装时,使用长语法要求事先创建引用的文件夹,如果文件夹不存在则启动报错。如果使用短语法,宿主机目录不存在则会自动创建。

    原理是长短语法底层使用的docker运行命令不同,短语法运行时使用的-v进行卷绑定,而长语法则使用了-mount进行卷绑定。

    docker的绑定卷细节请参考官方文档Use bind mounts

    compose的更多细节请阅读docker compose数据卷

    相关文章

      网友评论

          本文标题:Docker踩坑指南

          本文链接:https://www.haomeiwen.com/subject/vpgpmktx.html