Создайте базовый образ docker centos с помощью python 2.7.8

Я нашел это, которое поможет вам путем создания базового образа Centos на «голом железе». Однако я хочу установить некоторые дополнительные пакеты yum, загрузить Python 2.7.8 и собрать его.

У меня было это в файле докеров и уже работало так:

# Set the base image to Ubuntu
FROM centos:7

# File Author / Maintainer
MAINTAINER Sam Mohamed

# Update the sources list
RUN yum -y update
RUN yum install -y zlib-dev openssl-devel sqlite-devel bzip2-devel xz-libs gcc g++ build-essential make

# Install Python 2.7.8
RUN curl -o /root/Python-2.7.9.tar.xz  https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tar.xz
RUN tar -xf /root/Python-2.7.9.tar.xz -C /root
RUN cd /root/Python-2.7.9 && ./configure --prefix=/usr/local && make && make altinstall

# Copy the application folder inside the container
ADD `pwd` /opt/iws_project

# Download Setuptools and install pip and virtualenv
RUN wget https://bootstrap.pypa.io/ez_setup.py -O - | /usr/local/bin/python2.7
RUN /usr/local/bin/easy_install-2.7 pip
RUN /usr/local/bin/pip2.7 install virtualenv

# Create virtualenv and install requirements:
RUN /usr/local/bin/virtualenv /opt/iws_project/venv && source /opt/iws_project/bin/activate && pip install -r /opt/iws_project/requirements.txt

Как я могу преобразовать вышеуказанное в базовое изображение?


person Sam Hammamy    schedule 16.08.2015    source источник
comment
Вы можете просто использовать образ, созданный из этого Dockerfile, в качестве основы для последующих образов.   -  person augurar    schedule 16.08.2015
comment
@augurar как мне это сделать?   -  person Sam Hammamy    schedule 16.08.2015
comment
Вы можете указать созданный образ в строке FROM любых производных образов.   -  person augurar    schedule 16.08.2015
comment
@augurar как выглядит синтаксис?   -  person Sam Hammamy    schedule 16.08.2015
comment
Связанный: stackoverflow.com/questions/18274088/   -  person augurar    schedule 16.08.2015


Ответы (1)


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

Но если вы действительно хотите создать однослойный «базовый образ», выполните следующие действия:

  1. Установите все, что вы хотите, в какой-нибудь каталог (docker-centos-65/ в связанном руководстве).

    • You can modify the febootstrap command from the tutorial you linked to install additional yum packages by specifying more -i flags.
    • Вы можете выполнять любые другие выборочные установки (например, Python) вручную, просто убедитесь, что все находится в одном и том же корневом каталоге.
  2. Создайте tar архив каталога, в котором все установлено, и передайте его в docker import. команда:

    tar c -C docker-centos-65/ . | docker import - my-base-image
    
person augurar    schedule 16.08.2015
comment
Как я могу использовать полученное изображение в качестве основы? Каждый раз, когда я запускаю сборку докеров. он повторно загружает python и повторно выполняет все остальные шаги. - person Sam Hammamy; 16.08.2015
comment
Допустим, вы создаете вышеуказанный файл Dockerfile как my-base-image. Затем, если вы хотите создать производный образ, вы можете создать новый файл Dockerfile со строкой FROM my-base-image. - person augurar; 16.08.2015