[英]Docker volumes mounting on Windows 8 is not working
我想在Windows 8上運行一個Docker Compose應用程序。我在Ubuntu 16.04下運行它並且它完美地工作。
這個Docker Compose運行:
兩個容器使用卷。
我的.env
文件:
COMPOSE_CONVERT_WINDOWS_PATHS=1
APPLICATION_PATH=//C/Users/my_user/Documents/Development/my_application
我docker-compose.yml
文件:
version: '2'
services:
web:
build: ../application-web/
ports:
- "80:80"
tty: true
# Add a volume to link php code on the host and inside the container
volumes:
- ${APPLICATION_PATH}:/usr/share/nginx/html/application
- ${APPLICATION_PATH}/docker_files/docker-assistant:/usr/share/nginx/html/assistant
# Add hostnames to allow devs to call special url to open sites
extra_hosts:
- "localhost:127.0.0.1"
- "assistant.docker:127.0.0.1"
- "application.dev:127.0.0.1"
depends_on:
- custom-php
links:
- custom-php:custom-php
custom-php:
build: ../application-php/
ports:
- "50:50"
volumes:
- ${APPLICATION_PATH}:/usr/share/nginx/html/application
- ${APPLICATION_PATH}/docker_files/docker-assistant:/usr/share/nginx/html/assistant
當我運行docker-compose up
,一切順利。 容器開始。 但是當我嘗試在我的網絡瀏覽器中訪問http://192.168.99.100時,我收到403錯誤。
我的調查顯示nginx和php容器中沒有掛載的卷:
docker exec -it compose_web_1 bash
ls -la /usr/share/nginx/html/assistant/
節目
drwxr.xr.x 2 root root 80 May 18 15:30 .
drwxr.xr.x 2 root root 4096 May 18 16:10 ..
似乎Docker無法安裝卷。 為什么?
//C:/Users/my_user/Documents/Development/my_application
的環境變量APPLICATION_PATH
無法工作,因為Docker使用“:”字符作為卷聲明的分隔符:
錯誤:卷// C:/ Users / my_user / Documents / Development / my_application:// C:/ Users / my_user / Documents / Development / my_application格式不正確,應該是external:internal [:mode]
這不是一個nginx問題,因為當我在文件夾中創建一個index.phtml
文件時,我能夠運行它:
<?php echo 'Hello world!';
好的,我終於做到了!
按照這些說明,可以訪問容器內的C:\\。
去吧: https : //www.docker.com/products/docker-toolbox
安裝它。
打開Docker快速啟動終端。
在其中運行:
docker run hello-world
打開Virtualbox
打開default
虛擬機的配置並轉到shared folders
單擊右側的按鈕修改或創建新的共享文件夾。 將選項設置為:
C:\\
C
然后驗證。
關閉default
虛擬機,然后重新啟動它。
eG如果您有.env
文件:
COMPOSE_CONVERT_WINDOWS_PATHS=1
APPLICATION_PATH=//C/path_from_C_to_the_folder_you_want_to_share_on_the_volume
/!\\ 你 需要 將COMPOSE_CONVERT_WINDOWS_PATHS
設置為1!
在Docker快速入門終端中:
轉到Docker Compose文件夾,然后啟動它:
cd /path_to_your_compose_folder
docker-compose up
Docker技術依賴於Linux命名空間。 沒有Linux,它無法工作。 為了允許在Windows上使用Docker,Docker需要安裝Linux虛擬機。 所有容器都將在其中運行。
現在,在Virtualbox中創建並運行default
虛擬機,這就是您必須使用Virtualbox共享文件夾的原因。
共享后, default
虛擬機將在其中安裝一個帶有自定義名稱的文件夾(在上面的示例中,它是C
但它可能是elephant
或其他)。
最后,Docker會將卷從default
虛擬機安裝到容器中:您必須在卷聲明中使用default
機器共享文件夾的名稱(在上面的示例中,它是C
但它可能是elephant
或其他)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.