2017-05-14 38 views
1

我使用apache和php7爲Docker鏡像構建了一個安裝程序,並試圖從主機將htdocs目錄掛載到容器。Docker -v問題

整個泊塢窗系統在虛擬箱內的Ubuntu 16.04流浪漢VM這是在Windows 10上運行的運行(困惑?> :))

在第一次運行我的文件容器中的共享,但如果我正在重新啓動我的vagrant vm容器內的目錄是空的。

如果我在容器上執行「docker stop」和「docker start」,則這些文件再次變爲apear。

這些是我Vagrantfile對容器中的片段:

config.vm.provision "docker" do |d| 
d.run "apachephp", 
    args: "--name APP1 -p 80:80 -v /project/htdocs:/var/www/htdocs", 
    daemonize: true 
end 

任何人都知道這一點發出,有一個解決方案嗎?

此致敬禮!

+0

問題是'vagrant' +'virtualbox' +'windows'和'docker'!只需在Vagrant中使用'rsync',而不是簡單的文件共享,就完成了。儘管如此,這是一個PITA。 https://www.vagrantup.com/docs/synced-folders/rsync.html – Boynux

+0

@Boynux如果我提到你剛纔提到的右鍵菜單,rsync用於將Windows主機上的文件同步到vagrant vm中。這是已經工作的部分。我的問題是從vm獲取文件到容器中。如果我誤解了,你能舉個例子嗎?謝謝! – pennertenner

+1

如果你正在使用默認的流浪文件共享,這是Docker中不是'-v'的問題。解決的辦法是將文件複製到您的虛擬機,通過'rsync'完成 – Boynux

回答

1

由於@Boynux提到使用RSync解決了這個問題。感謝提示!我不知道有什麼問題的行爲,但下面的步驟做了我的設置工作:

  1. 安裝MinGW
  2. 打開MinGW和安裝包「MSYS-的OpenSSH」和「MSYS-rsync的」
  3. 安裝流浪-插件「流浪-加特林-rsync的」通過執行該命令vagrant plugin install vagrant-gatling-rsync在你COMMANDLINE
  4. 更改線config.vm.synced_folder "./project/", "/project"到線路config.vm.synced_folder "./project/", "/project", type: "rsync"(與type: "rsync"延伸)
  5. vagrant up

現在vagrant正在啓動虛擬機並按預期安裝文件夾。只要對項目進行更改,gatling-plugin就會使文件夾保持同步。

如果沒有需要同步的全部時間,你可以在你的Vagrantfile一行禁用此功能:config.gatling.rsync_on_startup = false,並在您執行以下命令,手動啓動同步進程命令:vagrant gatling-rsync-auto