Aktywne Wpisy

Polasz +753
Dzień dobry :)
źródło: temp_file4675324448878078082
Pobierz
JankoBzykant89 +510
Skopiuj link
Skopiuj link
źródło: temp_file4675324448878078082
Pobierz
Regulamin
Reklama
Kontakt
O nas
FAQ
Osiągnięcia
Ranking
Chciałem zrobić prostą rzecz: uruchomić Dockera z MongoDB, podpiąć folder jako volume do danych w bazie (bo chcę mieć dostęp do plików bazy pod ręką).
Mam Windows 10, używam WSL, w ustawieniach Dockera mam zaznaczone "File sharing" na dysku, na którym chcę montować (z tym miałem problem, podobno trzeba było w firewallu odblokować, ale nadal mi nie działało - jak zaktualizowałem Dockera do nowszej wersji, to się udało).
1. Próbowałem normalnie z PWD:
docker run -v $(pwd)/mongo:/data/db/ -p 27017:27017 --name mymongo -d mongo:4.2.2-bionicAle nie działa. Nie znajduje mi ścieżki. Próbowałem wszystkie kombinacje jakie znalazłem w necie: $(pwd), $PWD, /${PWD} itd. itd.
2. Rezygnuję z PWD i podaję lokalną ścieżkę:
docker run -v /mnt/c/dev/mongo:/data/db/ -p 27017:27017 --name mymongo -d mongo:4.2.2-bionic- Próbowałem z /mnt/c, /c itd.
- Próbowałem różnych ustawień tzn.
a) W /etc/wsl.conf
[automount]root=/
options="metadata"
b) W ~/.bashrc:
alias docker=docker.exealias docker-compose=docker-compose.exe
export PATH="$HOME/bin:$HOME/.local/bin:$PATH"
export PATH="$PATH:/mnt/c/Program\ Files/Docker/Docker/resources/bin"
Wszystkie próby sprowadzają się do dwóch końców:
Opcja 1. Mongo wstaje, ale folder nie montuje się i nie mam żadnych plików w (nie)zamontowanym folderze.
Opcja 2. Po starcie kontenera w folderze pojawiają się pliki, ale Mongo nie wstaje. Błąd:
connection: __posix_open_file, 667: /data/db/WiredTiger.wt: handle-open: open: Operation not permittedNie mam już pomysłu... Po co ten Docker i WSL na Windowsa jak taka najprostsza rzecz nie działa? Na Ubuntu to wszystko działało bez problemu, ale w domu potrzebuję Windowsa.
Zaskakuje mnie, że teraz można używać /mnt/c/. Kiedyś to było tylko C:\.
Błąd 2 jest z uprawnieniami. Mongo nie może stworzyć pliku bazy. Jakbyś wszedł docker exec do tego kontenera i sprawdził uprawnienia albo zawartość katalogu, aby upewnić się, że to właściwy.
Komentarz usunięty przez autora
@Koliat: znalazłem to wcześniej, działa, ale nie rozwiązuje mojego problemu.
Tzn. mogę zrobić
/usr/bin/bash.execzyli WSL).Odpalam zwykłe cmd.exe, wpisuję wsl, przenosi mnie na "Ubuntu" i działa tak samo jak w Git Bash:
$ echoCzy próbowałeś bez WSL? Chyba nie ma wielu różnic w komendach.
Windows 10 wersja 1903.
Chciałbym móc używać linuksowych komend (bo też piszę skrypty), więc dlatego chciałbym WSL albo chociaż Git Bash. Obecnie używam obu.
Ale testuję, żeby wyeliminować
https://github.com/docker-library/mongo/issues/190#issuecomment-331694698
https://github.com/docker/for-win/issues/1777
Ale nie mam pojęcia jak tego użyć:
https://askubuntu.com/questions/251901/configuring-mongo-db-to-work-with-ntfs-drive/254150#254150
I żeby zamontować dysk przez ntfs-3g z flagą permissions.
Ale na WSL nie jest to możliwe:
https://github.com/microsoft/WSL/issues/2935
Bo sam Windows
@andale: udało mi się, żeby Docker widział pendrive, ale nadal nie działa.
Musiałem zrobić restart kompa i dopiero w ustawieniach Docker Desktop zaczął go widzieć. W Docker Desktop musiałem zaznaczyć File Sharing na tym dysku (pendrive). Teraz Docker go widzi i muszę podawać po nazwie
@PendzoncySzczypiorek: zamontowałem dysk z Hyper-V (ten automatycznie zrobiony przez Dockera) w Windowsie (według tego), ale go nie widzę. W internecie pisali, żeby ustawić literę takiego dysku. Ale nie mam takiej możliwości (screen).
Może powinienem utworzyć kolejny wirtualny dysk, dodać go do tej dockerowej maszyny na Hyper-V i wtedy taki nowy dysk dałoby się zamontować na Windowsie?
Tylko nawet jakby tak
źródło: comment_8TiWxeThQDF3hQog0TTcnWjkB5l2vmH6.jpg
Pobierz