【问题标题】:docker-stack.yml invalid volume type binddocker-stack.yml 无效的卷类型绑定
【发布时间】:2017-03-13 17:38:20
【问题描述】:

这是我的 docker-stack.yml 文件

    version: "3"

    services:
      mysql:
        image: mysql:latest
        deploy:
          replicas: 1
          update_config:
            parallelism: 1
          restart_policy:
            condition: on-failure
        ports:
          - "3306:3306"
        environment:
          MYSQL_ROOT_PASSWORD: <Censored>
          MYSQL_USER: <Censored>
          MYSQL_PASSWORD: <Censored>
        volumes:
          - ./db/data:/var/lib/mysql
          - ./db/logs:/var/log/mysql
          - ./db/config:/etc/mysql/conf.d
      php:
        image: wiput1999/php
        volumes:
          - ./web:/web
      nginx:
        image: nginx:latest
        ports:
          - "80:80"
          - "443:443"
        volumes:
          - ./code:/code:ro
          - ./site.conf:/etc/nginx/conf.d/default.conf
          - /etc/letsencrypt:/etc/letsencrypt
          - ./nginx/log:/var/log/nginx

当我运行以下堆栈时,我得到了带有此错误的 mysql 和 nginx “类型“bind”的挂载配置无效:绑定源路径不存在”

我不知道我的代码有什么问题。

【问题讨论】:

    标签: docker docker-compose docker-swarm


    【解决方案1】:

    bind 是一种挂载类型,用于将主机上的目录(或文件)挂载到容器。你所有的卷都是这样设置的。因此,您的源目录(或文件)之一在主机上不存在。检查以下各项:

    • ./db/data
    • ./db/logs
    • ./db/config
    • ./web
    • ./代码
    • ./site.conf
    • /etc/letsencrypt
    • ./nginx/log

    您可以执行ls -ld ./db/data ./db/logs ./db/config ./web ./code ./site.conf /etc/letsencrypt ./nginx/log &gt;/dev/null 并查看错误消息以找出是哪一个。

    【讨论】:

    • 感谢您的回答。在 docker-compose v2 上,如果缺少这些文件夹,它会在主机上创建这些文件夹。我不知道 swarm 的行为发生了变化。
    【解决方案2】:

    请考虑使用 docker configs 和 docker secrets 代替卷。

    version: "3.3"
    
    services:
      nginx:
        configs:
          - source: nginx_vhost
            target: /etc/nginx/conf.d/default.conf
        secrets:
          - ssl_private_key
    ...
    
    configs:
      nginx_vhost:
        file: ./site.conf
    
    secrets:
      ssl_private_key:
        file: /etc/letsencrypt/private.key
    

    https://docs.docker.com/engine/swarm/configs/https://docs.docker.com/compose/compose-file/#configs

    【讨论】:

      猜你喜欢
      • 2019-08-17
      • 2017-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-27
      • 1970-01-01
      • 2022-12-03
      • 2017-07-05
      相关资源
      最近更新 更多