Я хочу создать образ докера на основе Centos8. В этом образе я хочу установить Python версии 3.7.7. Такой образ Python уже существует в dockerhub.
Как я могу использовать оба базовых образа для создания нового образа докера?
From python:3.7.7
# which files and foldes do I have to copy to my new docker image?
From centos:8
LABEL maintainer myself@test.com
Если это невозможно, это лучший способ создать версию Python с нуля Ссылка. Проблема с этим решением в том, что образ докера огромен.
1 ответ
TL; DR Обычно на изображении не может быть всего, что есть в двух изображениях (причина объяснена ниже)
TL; DR Список решений:
- Используйте базовый образ, который уже является CentOS и установлен Python, возможно, это а> изображение.
- Начните с образа CentOS, установите Python с помощью диспетчера пакетов в Dockerfile.
- Начните с образа CentOS, соберите Python в Dockerfile.
- Просто используйте Python в предоставленных дистрибутивах.
Длинный ответ:
Использование FROM imagename
эквивалентно загрузке предварительно созданного образа и последующему добавлению к нему инструкций в текущем Dockerfile. Изображение - это, по сути, снимок файловой системы.
Один из них - это снимок контейнера, в котором, вероятно, установлен дистрибутив Linux и установлен Python.
Другой - это моментальный снимок файловой системы другого дистрибутива Linux со всеми его функциями. Вы просто не можете смешивать их, потому что изображение - это не просто Python. Это все, что нужно Python для работы вместе с работающим ядром Linux, и их смешивание почти наверняка сломает их. потому что у них есть конфликтующие файлы и способы их запуска.
Но вы можете изменить один снимок, чтобы сделать из него другой снимок, например, вы можете взять образ CentOS и установить Python с помощью диспетчера пакетов, а затем сделать снимок и использовать его в качестве рабочего контейнера Docker.
Похожие вопросы
Связанные вопросы
Новые вопросы
python
Python — это мультипарадигмальный многоцелевой язык программирования с динамической типизацией. Он предназначен для быстрого изучения, понимания и использования, а также обеспечивает чистый и унифицированный синтаксис. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Если у вас есть вопросы о версии Python, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas, NumPy) укажите это в тегах.