w3cschool
  • 编程入门教程
  • 编程课程
  • 编程实战
  • 编程题库
  • 在线工具
  • VIP会员 HOT
App下载
APP二维码

扫码下载编程狮APP

注册|登录
注册成功 X

W3Cschool

恭喜您成为首批注册用户

获得88经验值奖励

Docker 教程
Docker 教程
  • 赞
  • 收藏
  • 分享
  • 更多文章
  • 目录
  • 搜索
  • 书签
  1. Docker 入门实战
  2. Docker 架构
  3. Docker安装
    1. Ubuntu Docker 安装
    2. CentOS Docker 安装
    3. Windows Docker 安装
  4. Docker使用
    1. Docker Hello World
    2. Docker 容器使用
    3. Docker 镜像使用
    4. Docker 容器连接
  5. Docker实例
    1. Docker 安装 Nginx
    2. Docker 安装 PHP
    3. Docker 安装 MySQL
    4. Docker 安装 Tomcat
    5. Docker 安装 Python
    6. Docker 安装 Redis
    7. Docker 安装 MongoDB
    8. Docker 安装 Apache
  6. Docker参考手册
    1. Docker 常用命令
    2. Docker 命令大全
    3. Docker 资源汇总
  • 请登录查看
阅读(23.3k) 书签 赞(3) 分享 我要纠错

Docker 安装 Python

2018-09-02 15:59 更新

方法一、通过 Dockerfile 构建

创建Dockerfile

首先,创建目录python,用于存放后面的相关东西。

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

myapp目录将映射为python容器配置的应用目录

进入创建的python目录,创建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"]

通过Dockerfile创建一个镜像,替换成你自己的名字

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

创建完成后,我们可以在本地的镜像列表里查找到刚刚创建的镜像

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

方法二、docker pull python:3.5

查找Docker Hub上的python镜像

w3cschool@w3cschool:~/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]

这里我们拉取官方的镜像,标签为3.5

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

等待下载完成后,我们就可以在本地镜像列表里查到REPOSITORY为python,标签为3.5的镜像。


使用python镜像

在~/python/myapp目录下创建一个 helloworld.py 文件,代码如下:

#!/usr/bin/python

print("Hello, World!");

运行容器

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

命令说明:

-v $PWD/myapp:/usr/src/myapp :将主机中当前目录下的myapp挂载到容器的/usr/src/myapp

-w /usr/src/myapp :指定容器的/usr/src/myapp目录为工作目录

python helloworld.py :使用容器的python命令来执行工作目录中的helloworld.py文件

输出结果:

Hello, World!

以上内容是否对您有帮助:
在文档使用的过程中是否遇到以下问题:
  • 内容错误
  • 更新不及时
  • 链接错误
  • 缺少代码/图片示列
  • 太简单/步骤待完善
  • 其他

更多建议:

提交建议
← Docker 安装 Tomcat
Docker 安装 Redis →
写笔记
精选笔记

您可能还喜欢:

  • Docker pull 命令
  • Docker info 命令
  • Docker push 命令
  • Docker version 命令
  • Docker diff 命令
  • Docker save 命令
  • Docker login/logout 命令
  • Docker import 命令
  • Docker commit 命令
  • Docker build 命令

Copyright©2020 w3cschool编程狮 闽ICP备15016281号-3 闽公网安备35020302033924号

在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号

意见反馈
返回顶部
意见反馈 X
  • 意见反馈:

    联系方式:

查看完整版笔记
违规举报 X
  • 广告等垃圾信息
  • 不友善内容
  • 违反法律法规的内容
  • 不宜公开讨论的政治内容
  • 其他