簡體   English   中英

Docker 工具箱卷安裝在 Windows 10 上不起作用

[英]Docker toolbox volume mounting not working on windows 10

我是 docker 新手

這是我的配置

文件夾結構

Test :
     - docker-compose.yml
     - Dockerfile
     - www
         - index.html

碼頭工人 YML

version: "3"
services:
    www:
        build: .
        ports:
            - "8001:80"
        volumes:
            - ./www:/var/www/html/
        links:
            - db
        networks:
            - default
    db:
        image: mysql:8.0.16
        command: ['--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci','--default-authentication-plugin=mysql_native_password']
        ports:
            - "3306:3306"
        environment:
            MYSQL_DATABASE: myDb
            MYSQL_USER: user
            MYSQL_PASSWORD: test
            MYSQL_ROOT_PASSWORD: test
        volumes:
            - ./dump:/docker-entrypoint-initdb.d
            - persistent:/var/lib/mysql
        networks:
            - default
    phpmyadmin:
        image: phpmyadmin/phpmyadmin:4.8
        links:
            - db:db
        ports:
            - 8000:80
        environment:
            MYSQL_USER: user
            MYSQL_PASSWORD: test
            MYSQL_ROOT_PASSWORD: test
volumes:
    persistent:

文件

FROM php:7.2.6-apache
RUN docker-php-ext-install mysqli pdo pdo_mysql gd curl
RUN a2enmod rewrite
RUN chmod -R 775 /var/www/html

phpmyadmin 儀表板工作正常,但是當我輸入網址時,它顯示403 禁止錯誤

當它檢查日志時,它顯示如下錯誤:

[Mon Sep 02 12:00:44.290707 2019] [autoindex:error] [pid 18] [client 192.168.99.1:52312] AH01276: Cannot serve directory /var/www/html/: No matching DirectoryIndex (index.php,index.html) found, and server-generated directory index forbidden by Options directive
192.168.99.1 - - [02/Sep/2019:12:00:44 +0000] "GET / HTTP/1.1" 403 508 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36"

我的“/var/www/html”目錄是空的。 我該如何解決?

更新

我使用 bash 創建了一個文件 index.php,它工作正常,但我無法在我的文件系統上找到 index.php 文件Bash 命令和瀏覽器截圖

請幫忙

如果您需要任何其他信息,請隨時詢問:)。

謝謝

最后我想通了這個問題,我正在使用 docker 工具箱,所以它只掛載C:\\Users目錄,但我的項目文件夾在 d 驅動器上。 所以我必須將我的D:\\projects目錄掛載到 vm 共享文件夾。 我按照以下步驟

  1. 在“設置”->“共享文件夾”下的 Virtual Box 添加“項目”並將其指向我要安裝的位置。 在我的情況下,這是 'D:\\projects'(自動掛載和永久啟用)
  2. 啟動 Docker 快速入門終端
  3. 輸入“docker-machine ssh default”(Docker 使用的 VirtualBox VM 稱為“default”)
  4. 轉到 VM 文件系統的根目錄,命令“cd /”
  5. 通過鍵入“sudo su”切換到用戶 root
  6. 創建要用作安裝點的目錄。 在我的情況下,它與 VirtualBox 中共享文件夾的名稱相同:'mkdir projects'
  7. 通過鍵入 'mount -t vboxsf -o uid=1000,gid=50 projects /projects' 掛載 VirtualBox 共享文件夾(第一個 'projects' 是 VirtualBox 共享文件夾名稱,第二個 '/projects' 是我剛剛創建的目錄並想用作掛載點)。
  8. 現在我可以像這樣向我的 Docker 文件添加一個卷:'- /projects/test/www/build/:/var/www/html/'(左側是我的 VM 中的 /projects 安裝,右側是要掛載在我的 docker 容器中的目錄)
  9. 運行命令“docker-compose up”以開始使用掛載(需要明確的是:在 docker-compose.yml 文件所在的本地文件系統上的 SSH 會話之外,通過 Docker 快速入門終端運行此命令)。

我像這樣更改 docker-compose.yml :

version: "3"
services:
    www:
        build: 
         context: .
         dockerfile: Dockerfile
        ports:
            - "8001:80"
        volumes:
            - /projects/test/www:/var/www/html/
        links:
            - db
        networks:
            - default
    db:
        image: mysql:8.0.16
        command: ['--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci','--default-authentication-plugin=mysql_native_password']
        ports:
            - "3306:3306"
        environment:
            MYSQL_DATABASE: myDb
            MYSQL_USER: user
            MYSQL_PASSWORD: test
            MYSQL_ROOT_PASSWORD: test
        volumes:
            - ./dump:/docker-entrypoint-initdb.d
            - persistent:/var/lib/mysql
        networks:
            - default
    phpmyadmin:
        image: phpmyadmin/phpmyadmin:4.8
        links:
            - db:db
        ports:
            - 8000:80
        environment:
            MYSQL_USER: user
            MYSQL_PASSWORD: test
            MYSQL_ROOT_PASSWORD: test
volumes:
    persistent:

我還更新了 oracle vm。 我從這里找到了這個解決方案: https : //github.com/moby/moby/issues/22430#issuecomment-215974613謝謝兄弟 :)

你需要修改你的Dockerfile,

FROM php:7.2.6-apache
RUN docker-php-ext-install pdo_mysql
RUN a2enmod rewrite
COPY www/ /var/www/html
RUN chmod -R 775 /var/www/html

這會將您的 www 目錄復制到容器內的 /var/www/html 目錄,讓您的 Web 服務運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM