Unterschied zwischen dem Erstellen eines Docker aus Ubuntu-Basis-Image und Python-Basis-Image?

8

Docker Neuling hier.

Ich lese die Dokumentation wie Webapp Setup Django Docker und ich erkennen, dass die dockerfile verwendet

FROM python:2.7

Kann ich immer noch die gleichen dockerfile Inhalte verwenden, aber es ändern

FROM ubuntu:14.04

und es mit Python 2.7 oder 3.4 für Django 1.8.1?

funktioniert     
Kim Stacks 11.05.2015, 03:57
quelle

2 Antworten

2

Mit Ubuntu können Sie eine Django-App ausführen. Sie müssen nur die Abhängigkeiten dafür installieren (mit Anweisungen in Ihrer Dockerfile zum Beispiel).

Fügen Sie in Ihrer Dockerdatei etwas hinzu:

%Vor%

Sie müssen möglicherweise auch einige Befehle durch ihre Entsprechungen ersetzen, wenn sie nicht im neuen Basisimage implementiert sind (ersetzen Sie apt-get durch pacman , wenn Sie archlinux anstelle von verwenden ubuntu zum Beispiel).

Aber wenn Sie django verwenden, können Sie auch pip installieren und verwenden.

    
vmonteco 11.05.2015 06:12
quelle
1

Die Anweisung docker FROM gibt das Basis-Image an, mit dem der Image-Build gestartet werden soll.

Wenn Sie zum Python: 2.7 dockerfile gehen, sehen Sie, dass es den nächsten angibt:

%Vor%

Dies bedeutet, dass dieses Image das Image buildpack-deps: jessie verwendet und darüber hinaus alle Python-bezogenen Abhängigkeiten erstellt.

Sie könnten darüber als Anwendungsebenen nachdenken. Sie richten ein Basis-Image ein (in der FROM-Anweisung) und installieren dann alles, was Sie zum Starten Ihrer Apps benötigen.

Beispiel:

Ich brauche ein Bild, das wget installiert hat, also mache ich eine Dockerfile ähnlich:

%Vor%

Und ich könnte dieses Bild nennen: wgetimage . Wenn ich dann einen wget-Container brauche, um etwas herunterzuladen, könnte ich dieses Bild verwenden:

%Vor%

In diesem speziellen Fall enthält das Ubuntu-Basis-Image keine Python-bezogenen Pakete, daher müssen Sie diese in der Docker-Datei hinzufügen. Wenn Sie nur Python-Anwendungen starten müssen, ist es vielleicht besser, wenn Sie python: 2.7 (oder python: 3.4) als Basisbild verwenden.

Ich hoffe, es hilft.

    
Jorge Marey 11.05.2015 09:21
quelle