Тома панели инструментов Docker в Windows не обновляют изменения в контейнере

Я начинаю с докера в Windows и пытаюсь использовать тома для управления данными в контейнерах.

Моя хост-среда:

  • Windows 8.1
  • Docker Toolbox 1.8.
  • Виртуальная коробка 5.0.6

Я создал образ ngnix, используя следующий файл Dockerfile.

Dockerfile

FROM centos:6.6

MAINTAINER afym

ENV WEBPORT 80

RUN yum -y update; yum clean all
RUN yum -y install epel-release; yum clean all
RUN yum -y install nginx; yum clean all
RUN echo "daemon off;" >> /etc/nginx/nginx.conf

VOLUME /usr/share/nginx/html

EXPOSE $WEBPORT

CMD [ "/usr/sbin/nginx" ]

Я создал контейнер ngnix, используя следующую команду.

docker run -d --name nge -v //c/Users/src:/usr/share/nginx/html -p 8082:80 ng1

b738fef9cc4d135416a8cca4caf869acf944319b7c3c61129b11f37f9d891598

Затем я захожу в свой браузер и вижу веб-страницу:

введите описание изображения здесь

Однако, когда я вношу изменения в свой файл index.html, он не обновляется в браузере.

Редактирование моего файла

введите описание изображения здесь

В моем браузере (ctrl + f5)

введите описание изображения здесь

Я пошел к машине VirtualBox, чтобы проверить, в порядке ли мои параметры общих каталогов.

введите описание изображения здесь

Затем я проверяю свой контейнер nge с помощью следующей команды.

docker inspect ng1

Проверка докеров

введите описание изображения здесь

Что происходит с объемами? Почему я не вижу свои изменения?


person afym    schedule 26.10.2015    source источник
comment
Я использую команду docker cp, пока я управляю своими файлами как: docker cp /C/Users/src/index.html nge: /usr/share/nginx/html/index.html (конечно, вы можете cp полностью каталог). Если бы кто-то нашел решение, было бы здорово.   -  person afym    schedule 26.10.2015


Ответы (1)


Через пару дней я нашел решение.

Первый докер в Windows даже на MAC использует экземпляр boot2docker в VirtualBox.

Диаграммы

На MAC

введите описание изображения здесь

В Windows

введите описание изображения здесь

Далее в официальной документации докера говорится:

том докера

Docker Machine tries to auto-share your /Users (OS X) or C:\Users (Windows) directory

Однако, найдя решение, я решил изменить c / Users по умолчанию на другой путь только для поддержания порядка. Имея это в виду, я сделал следующие шаги:

  • Определите свой собственный каталог рабочего пространства. В моем случае это / e / arquitectura (необязательно. При желании вы можете использовать путь по умолчанию: / c / Users).
  • Проверьте конфигурацию на виртуальной машине (на машине по умолчанию перейдите в > Конфигурация> Общие каталоги).

введите описание изображения здесь

  • Присоединитесь к машине по умолчанию и смонтируйте каталог, используя псевдоним
  sudo mount -t vboxsf alias-name-virtualbox  some-path-in-boot2docker

  # In my case (boot2docker instance)
  $ cd
  $ mkdir arquitectura
  $ sudo mount -t vboxsf arquitectura /arquitectura 
  • Наконец, создайте новый контейнер или перезапустите существующий, если вы не изменили путь c / user /
# In my case (docker client)
$ docker run -d --name nge -v //arquitectura/src:/usr/share/nginx/html -p 8081:80 ng1

Теперь это работает.

введите описание изображения здесь

person afym    schedule 30.10.2015