Docker挂载rootfs不会引起目录错误

时间:2020-01-11 18:10:29

标签: docker docker-compose dockerfile

我一直在尝试docker-compose up -d到我的容器,但是在下面导致此错误:

错误:对于phpsample-feed_phpsample_1无法启动服务phpsample:OCI运行时创建失败: container_linux.go:346:启动容器进程引起的“ process_linux.go:449:容器初始化引起的 \“ rootfs_linux.go:58:将\\” / c / Users / testUser / Documents / phpsample-feed / src \\“安装到rootfs \\“ / mnt / sda1 / var / lib / docker / overlay2 / e6bf66b01f587c8826c2944b676044c6a199a0c8c2b8807adf13de0e0f0c8509 / 在\\“ / mnt / sda1 / var / lib / docker / overlay2 / e6bf66b01f587c8826c2944b676044c6a199a0c8c2b8807adf13de0e0f8c4509 / merged / var / www / html \\“导致\\”不是目录\\“ \”“:未知:您是否要挂载目录 到文件上(反之亦然)?检查指定的主机路径是否存在并且是预期的类型

这是我的docker-compose.yml文件:

version: '3.7'
services:
  phpsample:
    build:
      context: .
    init: true
    ports:
      - '8080:80'
    depends_on:
      - db
      - redis
    volumes:
      - ./src:/var/www/html:rw
    environment:
      - DB_HOST=db
      - DB_USR=user
      - DB_PW=test
      - DB_DBNAME=phpsample
      - DB_DBPREFIX=dev_
      - IS_SHORT_URL=1
      - CACHE_DRIVER=redis
      - CACHE_HOST=redis
      - CACHE_PORT=6379
      - CACHE_REDIS_DB=3
      - DEBUG=false
    restart: always
  db:
    image: mysql:8
    environment:
      - MYSQL_ROOT_PASSWORD=test
      - MYSQL_USER=user
      - MYSQL_PASSWORD=test
      - MYSQL_DATABASE=phpsample
    volumes:
      - db_data:/var/lib/msyql
    command: --default-authentication-plugin=mysql_native_password --sql_mode=NO_ENGINE_SUBSTITUTION
  redis:
    image: redis:5-buster
    init: true
    command: ["redis-server", "--appendonly", "yes"]
    volumes:
      - redis_data:/data
volumes:
  db_data:
  redis_data:

我使用的系统和工具:

  • Windows 10 Home
  • Docker Toolbox终端
  • 风筝
  • Oracle VM

我还尝试通过执行this在VM上编辑Shared Folders。使用以下设置:

名称:c/Users路径:C:\Users

2 个答案:

答案 0 :(得分:0)

src应该是包含您的Web内容的目录,而不是文件。

答案 1 :(得分:0)

在docker-compose.yaml文件中,确保输入的Yaml文件路径在卷下存在: