2017-08-31 65 views
1

我正在嘗試使用我們在工作中使用的shell腳本來設置我們的開發環境,並通過Git Bash重新將其用於我的Windows環境。docker - Windows的卷格式

的容器在shell腳本中長大的方式如下:

docker run \ 
--detach \ 
--name=server_container \ 
--publish 80:80 \ 
--volume=$PWD/var/www:/var/www \ 
--volume=$PWD/var/log/apache2:/var/log/apache2 \ 
--link=mysql_container:mysql_container \ 
--link=redis_container:redis_container \ 
web-server 

當我運行,不被它返回以下錯誤信息:

C:\ Program Files \ Docker \ Docker \ Resources \ bin \ docker.exe:錯誤 守護進程的響應:invalid bind mount spec 「/ C/Users/username/var/docker/environments/development/scripts/var/log/apache2; C:\ Program Files \ Git \ var \ log \ apache2「:volume specifi正則表達式: '/ C/Users/username/var/docker/environments/development/scripts/var/log/apache2; Files \ Git \ var \ log \ apache2':無效的mount配置「: 無效的安裝路徑:'\ Program Files \ Git \ var \ log \ apache2'安裝路徑 必須是絕對路徑。參見'C:\ Program Files \ Docker \ Docker \ Resources \ bin \ docker.exe run --help'。

我做了一堆googling和文檔閱讀,但我有點被Docker壓垮了,我想我錯了。我試圖設置容器如下:

docker run \ 
--detach \ 
--name=server_container \ 
--publish 80:80 \ 
--volume=/c/users/username/var/www:/var/www \ 
--volume=/c/users/username/var/log/apache2:/var/log/apache2 \ 
--link=mysql_container:mysql_container \ 
--link=redis_container:redis_container \ 
web-server 

它仍然錯誤與一個類似的錯誤消息。如果我刪除冒號:/ var/www,它會出現,但它似乎沒有正確映射這些目錄,即它不知道C:\ users \ username \ var \ www =/var/www

我知道我在這裏錯過了一些令人痛苦的東西,但是當我看着文檔時,我只是釉過去。任何幫助將不勝感激。一旦我有一個例子,我就會關閉並運行。謝謝。

回答

1

那麼,我發佈後回答了我自己的問題。

這是正確的格式。

docker run \ 
--detach \ 
--name=server_container \ 
--publish 80:80 \ 
--volume=//c/users/username/var/www://var/www \ 
--volume=//c/users/username/var/log/apache2://var/log/apache2 \ 
--link=mysql_container:mysql_container \ 
--link=redis_container:redis_container \ 
web-server 

本應該一直保持googling幾分鐘。

1

如果你想使路徑相對,你可以使用pwd和變量。例如:

CURRENT_DIR=$(pwd)  
docker run -v /"$CURRENT_DIR"/../../test/:/test alpine ls test