中国最全IT社区平台 联系我们 | 收藏本站
程序员人生
阿里云优惠2
  • 首页
  • php框架
    框架设计 Yii Symfony CakePHP codeigniter ZendFramework ThinkPHP
  • web前端
    网络优化 特效 jscript htmlcss jquery
  • 程序人生
    散文 随笔 程序员工资吐槽 程序员人生规划 程序员面试
  • php开源
    php教程 destoon 综合技术 ecshop Discuz 帝国CMS DedeCMS PHPCMS WordPress
  • 数据库
    数据库应用 FoxPro sybase Oracle Sqlserver MySql access
  • 服务器
  • 互联网
    招商加盟
  • 工具
    程序员求签 程序员老黄历 颜色选择器
  • 编程教程

docker教程

  • Docker 入门实战
  • Docker 架构
  • Docker安装

    • Ubuntu Docker 安装
    • CentOS Docker 安装
    • Windows Docker 安装

    Docker使用

    • Docker Hello World
    • Docker 容器使用
    • Docker 镜像使用
    • Docker 容器连接

    Docker实例

    • Docker 安装 Nginx
    • Docker 安装 PHP
    • Docker 安装 MySQL
    • Docker 安装 Tomcat
    • Docker 安装 Python
    • Docker 安装 Redis
    • Docker 安装 MongoDB
    • Docker 安装 Apache

    Docker参考手册

    • Docker 命令大全
    • Docker 资源汇总
    ←上一篇: Docker 安装 Tomcat
    →下一篇:Docker 安装 Redis

    Docker 安装 Python

    阅读 (2324)

    方法一、通过 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
    教程导航
    • HTML / CSS
      • HTML 教程
      • HTML5 教程
      • CSS 教程
      • CSS3 教程
      • Bootstrap 教程
      • Foundation 教程
    • JavaScript
      • JavaScript 教程
      • HTML DOM 教程
      • jQuery 教程
      • AngularJS 教程
      • React 教程
      • jQuery UI 教程
      • Node.js 教程
      • AJAX 教程
      • JSON 教程
      • Highcharts 教程
      • Google 地图 教程
    • 服务端
      • PHP 教程
      • Python 教程
      • Python3 教程
      • Django 教程
      • Linux 教程
      • Docker 教程
      • Ruby 教程
      • Java 教程
      • C 教程
      • C++ 教程
      • Perl 教程
      • Servlet 教程
      • JSP 教程
      • Lua 教程
      • Scala 教程
      • Go 教程
      • 设计模式
      • 正则表达式
      • ASP 教程
      • AppML 教程
      • VBScript 教程
    • 数据库
      • SQL 教程
      • Mysql 教程
      • SQLite 教程
      • MongoDB 教程
      • Redis 教程
      • Memcached 教程
    • 移动端
      • Android 教程
      • Swift 教程
      • jQuery Mobile 教程
      • ionic 教程
    • XML 教程
      • XML 教程
      • DTD 教程
      • XML DOM 教程
      • XSLT 教程
      • XPath 教程
      • XQuery 教程
      • XLink 教程
      • XML Schema 教程
      • XSL-FO 教程
      • SVG 教程
    • ASP.NET
      • ASP.NET 教程
      • C# 教程
    • Web Service
      • Web Service 教程
      • WSDL 教程
      • SOAP 教程
      • RSS 教程
      • RDF 教程
    • 开发工具
      • Eclipse 教程
      • Git 教程
      • Firebug 教程
    • 网站建设
      • HTTP 教程
      • 网站建设指南
      • 浏览器信息
      • 网站主机教程
      • TCP/IP 教程
      • W3C 教程
      • 网站品质

    程序员人生,我编程,我富裕,记住wfuyu网,php教程,php学习,php手册,CMS模版制作

    声明:本站大部分内容是作者原创,少部分收集于互联网供大家一起学习,原版权很多不明,如有侵权请联系本站,谢谢!

    粤ICP备14040726号-1   2015-2020 程序员人生 版权所有

    平平安安 备案网站
    关闭
    程序员人生