从ubuntu基础映像和python基础映像构建docker之间的区别?

时间:2015-05-11 03:57:45

标签: python django ubuntu docker dockerfile

Docker新手在这里。

我正在阅读有关如何使用Docker设置Django webapp的documentation,我意识到dockerfile使用

FROM python:2.7

我仍然可以使用相同的dockerfile内容,但将其更改为

FROM ubuntu:14.04

并使它适用于Django 1.8.1的python 2.7或3.4?

2 个答案:

答案 0 :(得分:2)

使用ubuntu,您可以运行django应用程序。你只需要为它安装依赖项(例如,在Dockerfile中有说明)。

在Dockerfile中,添加如下内容:

RUN apt-get install python
RUN apt-get install django

如果在新的基本图像中未实现某些命令,则可能还必须使用等效命令替换这些命令(如果使用 archlinux ,请将apt-get替换为pacman例如 ubuntu

但是如果你使用django,你也可以安装并使用pip。

答案 1 :(得分:1)

docker FROM 指令指定开始构建图像的基本图像。

如果你去python:2.7 dockerfile,你会看到它指定了下一个:

FROM buildpack-deps:jessie

这意味着此图像将使用图像 buildpack-deps:jessie ,并在此基础上构建所有与python相关的依赖项。

您可以将其视为应用程序层。您设置基本映像(在FROM语句中),然后安装启动应用程序所需的任何内容。

示例:

我需要一个安装了wget的映像,所以我创建了一个与此类似的Dockerfile:

FROM debian:jessie
RUN apt-get update && apt-get install wget
...

我可以将此图片称为: wgetimage 。然后,如果我需要一个wget容器来下载某些东西,我可以使用这个图像:

FROM wgetimage
RUN wget ....

在这种特定情况下,ubuntu基本映像将不具有与python相关的包,因此您需要在Dockerfile上添加它们。如果您只需要启动python应用程序,那么使用python:2.7(或python:3.4)作为基本映像可能会更好。

希望它有所帮助。