docker-stack.yml 无效的卷类型绑定(bind)

标签 docker docker-compose docker-swarm

这是我的 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)”的无效装载配置:绑定(bind)源路径不存在”

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

最佳答案

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

  • ./db/数据
  • ./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 >/dev/null并查看错误消息以找出哪个错误消息。

    关于docker-stack.yml 无效的卷类型绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42769979/

    相关文章:

    docker - 具有两个网络的基于Docker的Consul Service Discovery失败

    linux - 是否可以在 Kubernetes Pod 中挂载主目录 (~)?

    mysql - 尝试连接本地 mysql 数据库时,docker 容器上的 Django 出现错误

    python - 为什么在 Docker 镜像中使用 requirements.txt

    python - 无法在浏览器上使用 Docker compose 运行 Django 应用程序

    Docker 组合错误 : cannot restrict inter-container communication

    docker - 在堆栈部署上,无法固定图像以进行摘要:未经授权:客户端没有 list 的权限

    Docker 镜像层树

    amazon-web-services - 重新启动后删除Jenkinw配置

    maven - 如何在 Docker 容器中运行 JUnit 测试并在 JUnit 失败时让容器无法启动?