w3cschool
  • 编程课程
  • 编程实战
  • 编程题库
  • 编程教程
  • 在线工具
  • 免费AI编程助手
  • VIP会员 暑期特惠
App下载
APP二维码

扫码下载编程狮APP

注册|登录
注册成功 X

W3Cschool

恭喜您成为首批注册用户

获得88经验值奖励

  • 入门教程
  • 编程课程
  • VIP会员
Docker 教程
Docker 教程
  • 赞
  • 收藏
  • 更多文章
  • 目录
  • 搜索
  • 书签
  1. Docker 入门实战
  2. Docker 架构
  3. Docker安装
    1. Ubuntu Docker 安装
    2. CentOS Docker 安装
    3. Windows Docker 安装
    4. MacOS 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 资源汇总
    4. Docker 备忘单
阅读(29.1k) 书签 赞(4) 分享 我要纠错

Docker 安装 Python

2022-07-18 14:20 更新

方法一、通过 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 →
写笔记
我要补充
精选笔记

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

违法和不良信息举报电话:173-0602-2364|举报邮箱:jubao@eeedong.com

在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号

意见反馈
意见反馈 X
  • 意见反馈:

    联系方式:

查看完整版笔记
违规举报 X
  • 广告等垃圾信息
  • 不友善内容
  • 违反法律法规的内容
  • 不宜公开讨论的政治内容
  • 其他
工具
推荐 更多
豆包AI编程
Turtle绘图
Markdown编辑器
Unix时间戳
Mermaid编辑器
Python在线编译器
在线拾色器
正则工具
AI编程工具 更多
Trae
代码小浣熊
星辰Agent
通义灵码
文心快码
CodeGeeX
GitHub Copilot
Fitten Code