【问题标题】:Create base docker centos image with python 2.7.8使用 python 2.7.8 创建基础 docker centos 镜像
【发布时间】:2015-11-09 09:03:09
【问题描述】:

我找到了this,它会引导您创建一个基本的裸机 centos 映像。但是,我想安装一些额外的 yum 包,下载 Python 2.7.8 并构建它。

我在 dockerfile 中有这个并且已经像这样工作了:

# 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

如何将以上内容转换为基础图像?

【问题讨论】:

  • 您可以只使用从这个 Dockerfile 构建的镜像作为后续镜像的基础。
  • @augurar 我该怎么做?
  • 您可以在任何派生图像的FROM 行中指定您构建的图像。
  • @augurar 的语法是什么样的?

标签: python centos docker dockerfile


【解决方案1】:

您最好构建给定的 Dockerfile 并使用生成的镜像作为未来镜像的基础。这更容易维护,并且在资源使用方面并不真正花费任何成本。

但如果你真的想创建一个单层的“基础镜像”,步骤如下:

  1. 将您想要的所有内容安装到某个目录(链接教程中的docker-centos-65/)。

    • 您可以修改链接教程中的febootstrap 命令,通过指定更多-i 标志来安装额外的yum 包。
    • 您可以手动执行任何其他自定义安装(例如 Python),只需确保所有内容都位于同一根目录中
  2. 创建所有安装目录的tar 存档,并将其通过管道传递给docker import 命令:

    tar c -C docker-centos-65/ . | docker import - my-base-image
    

【讨论】:

  • 如何使用生成的图像作为基础?每次我运行 docker build 。它重新下载python,并重新运行所有其他步骤。
  • 假设您将上述 Dockerfile 构建为my-base-image。然后如果你想制作一个派生镜像,你可以使用FROM my-base-image这一行创建一个新的Dockerfile。
猜你喜欢
  • 2015-02-15
  • 1970-01-01
  • 2017-04-24
  • 1970-01-01
  • 2017-09-29
  • 2020-02-26
  • 1970-01-01
  • 2015-08-25
  • 2019-12-21
相关资源
最近更新 更多