2015-06-02 24 views
5

Zajmuję się programowaniem po stronie serwera, a mój obszar roboczy znajduje się w języku D: ponieważ nie jestem fanem przechowywania danych w C: ale nie mogę znaleźć sposobu na mapowanie d: \ Workspace do/home/workspaceJak mapować wolumin poza C: Users na kontener w systemie Windows?

próbowałem tworzenia symblink z C: \ Users \ nazwa_użytkownika do D: \ Workspace przez:

  1. mapie C: \ Users \ nazwa_użytkownika \ Workspace do/home/roboczy pojemnik
  2. Zatrzymaj
  3. Zmień nazwę C: \ Użytkownicy \ nazwa użytkownika \ Obszar roboczy
  4. Utwórz łącze symboliczne o nazwie Obszar roboczy do D : \ Workspace
  5. pojemnik start

Na pierwszy Döcker pracował dobrze podczas tej sesji aż restart Boot2Docker, a następnie uruchomić pojemnik Chciałbym uzyskać "C: \ Users \ nazwa_użytkownika plik \ Workspace istnieje".

Myślę, że jest to jeden problem Docker, ale w każdym razie chcę mapować poza C: \ Users.

Odpowiedz

5
  • Podziel roboczy pomiędzy hostem a Boot2Docker maszynie wirtualnej $ boot2docker down $ cd "C:\Program Files\Oracle\VirtualBox" $ VBoxManage sharedfolder add boot2docker-vm --name mydata --hostpath "D:\Workspace" $ boot2docker up

  • Góra udostępnionego folderu $ boot2docker ssh 'sudo mkdir -p /data' $ boot2docker ssh 'sudo mount -t vboxsf -o "defaults,uid=33,gid=33,rw" mydata /data'

  • Tworzenie kontener danych tylko do odczytu. Najlepsze praktyki w Docker: alwaysrecommends używasz kontenerów tylko do danych. można ponownie wykorzystać już dostępne pojemniki z danymi tylko: $ docker run --volume /data:/data --name mydata dylanlindgren/docker-laravel-data

  • Jeśli chcesz zmiana ta będzie trwała, trzeba dodać ostatnie polecenie wewnątrz startowego pliku konfiguracyjnego /var/lib/boot2docker/bootlocal.sh sleep 10 && sudo mount -t vboxsf -o "defaults,uid=33,gid=33,rw" mydata /data docker start mydata

Następnie będzie mieć swój roboczy montowany w/dane

można znaleźć więcej dokumentacji o Dodatkami w Boot2Docker here.

+0

mam ten błąd : mount.vboxsf: nie udało się zamontować z błędem: Błąd protokołu mount: podłączanie mydata na/dane nie powiodło się: Błąd protokołu – deathemperor

+1

Dodaję pierwszy krok do utworzenia kontenera danych. Pominąłem ten krok w poprzedniej odpowiedzi. – dmoreno

+0

Unikaj "Błąd protokołu", ponawiając polecenie VBoxManage. Upewnij się, że to polecenie działa bez błędów. – dmoreno

4

Zaktualizowana odpowiedź na razie, ponieważ boot2docker został uznany za przestarzały. To samo można osiągnąć za pomocą maszyny dokujacej.

Odpowiedź jest opisany tutaj: https://github.com/docker/machine/issues/1814

Zasadniczo, po zamontowaniu foldery współdzielone w Virtual Box UI, trzeba uruchomić następujące polecenia w wierszu polecenia:

# Note the extra/at the beginning of the path because of msys/MinGW. 
docker-machine.exe ssh default 'sudo mkdir --parents //e/Documents/workspace' 
docker-machine.exe ssh default 'sudo mount -t vboxsf e/Documents/workspace //e/Documents/workspace' 
+0

Zgodnie z regułami StackOverflow, powinieneś nie tylko zapewniać kroki do wykonania danego zadania, ale także wyjaśnić każdą linię i dlaczego chcesz, aby to robili. Zła odpowiedź, 5/10 –