Docker Symlink из общей папки в virtualbox

Я работаю на тестовом сервере, на моем компьютере. Где я установил сервер Ubuntu, как виртуальную машину в виртуальном боксе.

Версия 5.2.8.r121009

Характеристики:

  • Ubuntu 17.10 4.13.0-21-generic
  • Версия Docker 18.04 .0-ce, сборка 3d479c0

Я создал две общие папки.

root@docker:/var/lib/docker# ls /media/ -l
totalt 4
drwxr-xr-x 2 root root   4096 mai    8 23:15 cdrom
drwxrwx--- 1 root vboxsf    0 mai    8 23:46 sf_docker-compose
drwxrwx--- 1 root vboxsf    0 mai    9 00:17 sf_docker-volumes 

Когда я делаю

service docker stop && \
rm -fr /var/lib/docker/volumes && \
ln -s /media/sf_docker-volumes /var/lib/docker/volumes && \
service docker restart && \
docker ps

, я получаю следующую ошибку

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. 
Is the docker daemon running?

Так что я возвращаюсь к значениям по умолчанию:

service docker stop && \
rm -fr /var/lib/docker/volumes && \
service docker restart && \
docker ps

И все снова работает.

Итак, мои вопросы: как я могу исправить проблемы с разрешениями, которые я получаю, используя символическую ссылку для папки / var / lib / docker / volume /. Я уверен, что проблема в том, что владельцем группы символической ссылки является vboxsf, а не root. но я не могу изменить это.

1
задан 9 May 2018 в 02:09

2 ответа

Для изменения владения символьной ссылки пробуют следующую команду и видят, решает ли это проблему. sudo мог бы быть необходим.

 chown -H myuser:mygroup mysymbolic
0
ответ дан 8 December 2019 в 01:12

После большого количества следа и ошибки, я узнал это, что я пытаюсь сделать. не возможно. по крайней мере не прямым способом. Файловая система, то использование виртуального поля для нее совместно используемые папки, только для чтения для системы, но для пользователей ее чтение-запись. (почему я не выяснил.)

То, что я хочу, является бесшовным опытом, где я не должен вручную копировать и вставлять файлы, но что ни за что в жизни я не могу выяснить, как сделать.

Единственная вещь близко к рабочему решению, должны отредактировать мой fstab файл и добавить монтирование там.

docker /docker    vboxsf  defaults,uid=1000,gid=1000,umask=0022   0       0

затем создайте ascript, который делает это для меня

rm -fr /docker/* && \
mkdir /tmp/docker && \
cp -r /var/lib/docker/volumes/* /tmp/docker &&\
sudo chown -H bdbear:bdbear /tmp/docker && \
mv /tmp/docker/* /docker

Это делает половину задания для меня, таким образом, его okey., но автоматическое решение было бы настолько более легче.

Возможно, я реализую Inotify-инструменты для создания этого полностью автоматическим, Но на данный момент я только что очистил всю эту мысль работать над этим маленьким проектом. Я пытался использовать Rsync, но он дает мне ошибку протокола, связанную с файловой системой только для чтения.

0
ответ дан 8 December 2019 в 01:12

Другие вопросы по тегам:

Похожие вопросы: