Docker installe Python


Méthode 1. Construire via Dockerfile

Créer un Dockerfile

Tout d'abord, créez le répertoire python pour stocker les éléments connexes ultérieurs.

php@php:~$ mdkir -p ~/python ~/python/myapp

Le répertoire myapp sera mappé au répertoire d'application configuré pour le conteneur python

Entrez le répertoire python créé et créez un Dockerfile

FROM buildpack-deps:jessie

# remove several traces of debian python
RUN apt-get purge -y python.*

# http://bugs.python.org/issue19846
# > At the moment, setting "LANG=C" on a Linux system *fundamentally breaks Python 3*, and that's not OK.
ENV LANG C.UTF-8

# gpg: key F73C700D: public key "Larry Hastings <larry@hastings.org>" imported
ENV GPG_KEY 97FC712E4C024BBEA48A61ED3A5CA953F73C700D

ENV PYTHON_VERSION 3.5.1

# if this is called "PIP_VERSION", pip explodes with "ValueError: invalid truth value '<VERSION>'"
ENV PYTHON_PIP_VERSION 8.1.2

RUN set -ex \
        && curl -fSL "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz" -o python.tar.xz \
        && curl -fSL "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc" -o python.tar.xz.asc \
        && export GNUPGHOME="$(mktemp -d)" \
        && gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$GPG_KEY" \
        && gpg --batch --verify python.tar.xz.asc python.tar.xz \
        && rm -r "$GNUPGHOME" python.tar.xz.asc \
        && mkdir -p /usr/src/python \
        && tar -xJC /usr/src/python --strip-components=1 -f python.tar.xz \
        && rm python.tar.xz \
        \
        && cd /usr/src/python \
        && ./configure --enable-shared --enable-unicode=ucs4 \
        && make -j$(nproc) \
        && make install \
        && ldconfig \
        && pip3 install --no-cache-dir --upgrade --ignore-installed pip==$PYTHON_PIP_VERSION \
        && find /usr/local -depth \
                \( \
                    \( -type d -a -name test -o -name tests \) \
                    -o \
                    \( -type f -a -name '*.pyc' -o -name '*.pyo' \) \
                \) -exec rm -rf '{}' + \
        && rm -rf /usr/src/python ~/.cache

# make some useful symlinks that are expected to exist
RUN cd /usr/local/bin \
        && ln -s easy_install-3.5 easy_install \
        && ln -s idle3 idle \
        && ln -s pydoc3 pydoc \
        && ln -s python3 python \
        && ln -s python3-config python-config

CMD ["python3"]

Créez une image via le Dockerfile et remplacez-le par le vôtre Une fois le nom

php@php:~/python$ docker build -t python:3.5 .

créé, nous pouvons trouver l'image que nous venons de créer

php@php:~/python$ docker images python:3.5 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
python              3.5              045767ddf24a        9 days ago          684.1 MB

dans la liste d'images locale. méthode 2. docker pull python:3.5

.

Trouver le miroir python Docker Hub

php@php:~/python$ docker search python
NAME                           DESCRIPTION                        STARS     OFFICIAL   AUTOMATED
python                         Python is an interpreted,...       982       [OK]       
kaggle/python                  Docker image for Python...         33                   [OK]
azukiapp/python                Docker image to run Python ...     3                    [OK]
vimagick/python                mini python                                  2          [OK]
tsuru/python                   Image for the Python ...           2                    [OK]
pandada8/alpine-python         An alpine based python image                 1          [OK]
1science/python                Python Docker images based on ...  1                    [OK]
lucidfrontier45/python-uwsgi   Python with uWSGI                  1                    [OK]
orbweb/python                  Python image                       1                    [OK]
pathwar/python                 Python template for Pathwar levels 1                    [OK]
rounds/10m-python              Python, setuptools and pip.        0                    [OK]
ruimashita/python              ubuntu 14.04 python                0                    [OK]
tnanba/python                  Python on CentOS-7 image.          0                    [OK]

Ici, nous extrayons le miroir officiel, l'étiquette est 3.5

php@php:~/python$ docker pull python:3.5

Après avoir attendu la fin du téléchargement, nous pouvons trouver le REPOSITORY en tant que python dans le liste de miroirs locaux, l'étiquette est 3,5 miroir.


Utilisez l'image python

pour créer un fichier helloworld.py dans le répertoire ~/python/myapp Le code est le suivant :

#!/usr/bin/python

print("Hello, World!");

Exécutez le. conteneur

php@php:~/python$ docker run  -v $PWD/myapp:/usr/src/myapp  -w /usr/src/myapp python:3.5 python helloworld.py

Description de la commande :

-v $PWD/myapp:/usr/src/myapp :Montez myapp dans le répertoire actuel sur l'hôte vers /usr/ src/myapp dans le conteneur

-w /usr/src/myapp :Spécifiez le répertoire /usr/src/myapp du conteneur comme répertoire de travail

python helloworld.py :Utilisez la commande python du conteneur pour exécuter le fichier helloworld.py dans le répertoire de travail

Résultat de sortie :

Hello, World!