Latest web development tutorials

Docker installer Python

Procédé de construction d'Dockerfile

Créer Dockerfile

Tout d'abord, créer un python de répertoire, utilisé pour stocker des trucs liés à dos.

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

répertoire myapp sera mappé sur le répertoire de l'application de configuration du conteneur de python

Entrez le répertoire python créé, créez 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 <[email protected]>" 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éer un miroir à travers Dockerfile, remplacez-le avec votre propre nom

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

Une fois créé, nous pouvons trouver l'image que vous venez de créer dans la liste de miroir local

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

Méthode deux, docker traction python: 3.5

Trouver python sur le miroir Docker Hub

w3big@w3big:~/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 tirons un miroir officiel, marqué 3.5

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

Attendez que le téléchargement est terminé, nous pouvons trouver DÉPÔT comme python dans la liste de miroir local, étiqueté 3,5 image.


Reflétant en utilisant python

Helloworld.py créer un fichier dans le répertoire ~ / python / répertoire myapp, comme suit:

#!/usr/bin/python

print("Hello, World!");

conteneur Run

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

Commande Description:

-v $ PWD / myapp: / usr / src / myapp: myapp accueillera le répertoire courant est monté sur le conteneur / usr / src / myapp

-w / usr / src / myapp: spécifié conteneur / usr / src / myapp que le répertoire de travail

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

sortie:

Hello, World!