Используя докеры, вы можете создавать изображения на основе других изображений очень красиво. Например, вы можете сделать образ Java-jdk7 (на основе последней версии Ubuntu LTS) и на основе этого создать изображения для поиска изображений и tomcat7 (оба из которых нуждаются в java).
Итак, если я не помещаю свои изображения, я получаю следующее (извлечение docker images
):
╔══════════════════════╦════════╦══════════════╗
║ REPOSITORY ║ TAG ║ ID ║
╠══════════════════════╬════════╬══════════════╣
║ ubuntu ║ 12.04 ║ 8dbd9e392a96 ║
║ quintenk/jdk7-oracle ║ latest ║ 8928245086f4 ║
║ quintenk/tomcat7 ║ latest ║ 995cdb2cbfa8 ║
║ quintenk/elastics ║ latest ║ 123abc456ef2 ║
╚══════════════════════╩════════╩══════════════╝
Теперь вопрос. Как я/должен поддерживать эту зависимость? Как выполнить обслуживание одного изображения и зависимых изображений?
- Если я обновляю образ jdk (например,
apt-get upgrade
), я полагаю, что я не искажаю зависимые изображения? Однако я также предполагаю, что дерево зависимостей не так, как вы ожидали бы. [ОБНОВЛЕНИЕ: я воспроизвел это, так что см. Мой собственный ответ ниже] - Если верно 1, есть ли способ, которым я могу иметь зависимые изображения, как устаревшие, и (надеюсь) их перестроить?
Или можно ли пометить контейнеры с номером версии и вручную перестроить и перераспределить все зависимости с помощью увеличенных тегов номера версии? Это означало бы, что Dockerfiles необходимо будет изменить для обновления.
UPDATE: Я нашел следующее изображение на сайте докера в своей презентации . Однако я не совсем уверен в том, как это сделать (особенно с зависимостями от других изображений, как я описал).