Ответ 1
Попробуйте использовать:
volumes:
- ./server:/server
вместо server/
- есть случаи, когда Docker не любит конечную косую черту.
У меня есть docker-compose.yml
вот так:
db:
image: mongo:latest
ports:
- "27017:27017"
server:
image: artificial/docker-sails:stable-pm2
command: sails lift
volumes:
- server/:/server
ports:
- "1337:1337"
links:
- db
server/
относится к папке файла docker-compose.yml
. Однако, когда я docker exec -it CONTAINERID /bin/bash
и проверьте /server
, он пуст.
Что я делаю неправильно?
Попробуйте использовать:
volumes:
- ./server:/server
вместо server/
- есть случаи, когда Docker не любит конечную косую черту.
Помимо ответов здесь, это может быть связано с общим доступом к дискам в настройке Docker. В Windows я обнаружил, что общий доступ к дискам должен быть включен.
Если он уже включен и вы недавно изменили пароль своего ПК, вам необходимо отключить общий доступ к диску (и нажать "Применить") и снова включить его (и нажать "Применить"). В процессе вам будет предложено ввести новый пароль для вашего ПК. После этого снова запустите команду docker (запустите или создайте)
Согласно документации томов докера,
https://docs.docker.com/engine/tutorials/dockervolumes/#/mount-a-host-directory-as-a-data-volume
Host-dir может быть либо абсолютным путем, либо значением имени. Если вы указываете абсолютный путь для host-dir, Docker привязывает-монтирует к указанному вами пути. Если вы введете имя, Docker создаст именованный том под этим именем
У меня была похожая проблема, когда я хотел смонтировать каталог из командной строки:
docker run -tid -p 5080:80 -v /d/my_project:/var/www/html/my_project nimmis/apache-php5
Контейнер успешно запущен, но смонтированный каталог пуст.
Причина была в том, что смонтированный каталог должен находиться в домашнем каталоге пользователя. Итак, я создал символическую ссылку в c:\Users\<username>
которая монтируется в папку моего проекта d:\my_project
и смонтировал ее:
docker run -tid -p 5080:80 -v /c/Users/<username>/my_project/:/var/www/html/my_project nimmis/apache-php5