2016-10-30 7 views
1

Я пытаюсь начать Дженкинса грузчиком контейнера с помощью докер Toolbox на Windows 7.Docker не сохраняет данные в хост смонтированные тома

Я бегу

docker run --name jenkins -p 8080:8080 -p 50000:50000 -v "//C/Users/myname/.jenkins:/var/jenkins_home" jenkins 

Дженкинс начинает красиво, однако в C: /Users/myname/.jenkins ничего не создано. Я создал папку, но она остается пустой.

Когда я останавливаюсь и удаляю контейнер и запускаю его снова, дженкинс потерял все, что я делал раньше.

Что я делаю неправильно?

+0

Не ответ, но вы подумали о переходе с Docker Toolbox на новый [Docker for Windows] (https://docs.docker.com/docker-for-windows/)? Он использует другой гипервизор (HyperV вместо VirtualBox) и другой механизм для размещения файлов/каталогов хоста в вашем контейнере. – larsks

+0

Разве это не только для Windows 10? я не могу обновить, так как это рабочий ноутбук. – Urr4

+0

Не может вам помочь, но похоже, что @TInkerTank у вас все покрыто :) – larsks

ответ

1

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

Кажется, что на томе, на котором установлены хосты, есть некоторые оговорки с Docker Toolbox на окнах. Смотрите, например:

Возможно, есть некоторые намеки здесь, которые могут помочь вам получить его на работу.


Если вы хотите, чтобы данные сохраняются между контейнерами, даже после удаления контейнера Дженкинс, вы можете использовать данные-объем для Дженкинс домашнего каталога. В этом случае вы бы начать Дженкинс следующим образом:

docker run --name jenkins -p 8080:8080 -p 50000:50000 -v "/var/jenkins_home" jenkins 

Это в основном создает отдельный контейнер Docker для/вар/jenkins_home каталога, что позволяет удалить/обновить/и т.д. контейнер Дженкинс, не затрагивая данные.

Убедитесь, что вы понимаете, что здесь происходит. Читайте: https://docs.docker.com/engine/tutorials/dockervolumes/

это также упоминается в документации Дженкинс докер-изображения: https://hub.docker.com/_/jenkins/


В качестве альтернативы: это может быть приемлемо только «стоп» и «перезапуск» контейнер каждый раз, когда вам это нужно ? - В этом случае вам не нужны каталоги, установленные хостом. В этом случае просто опустите опции -v. Это затрудняет резервное копирование ваших данных или использование более нового изображения jenkins.

+0

Спасибо, это помогает мне понять проблему. Я не знаю, как исправить это, не используя Linux или Windows 10, но, возможно, я найду обходное решение. – Urr4

1

Мне не удалось это сделать, используя консоль докера, однако это возможно с помощью Kitematic в Docker Toolbock. На вкладке «Объемы» вы можете добавить локальные папки в виде томов в контейнер. Файлы Jenkins появились в локальной папке, как и ожидалось.

+1

Спасибо, что поделились своим решением! – TinkerTank