求知 文章 文库 Lib 视频 Code iProcess 课程 认证 咨询 工具 火云堂 讲座吧   成长之路  
会员   
要资料
 
追随技术信仰

随时听讲座
每天看新闻
 

Docker 入门实战
1. Docker 架构
2. Docker 安装
2.1 Ubuntu Docker 安装
2.2 CentOS Docker 安装
2.3 Windows Docker 安装
3. Docker使用
3.1 Docker Hello World
3.2 Docker 容器使用
3.3 Docker 镜像使用
3.4 Docker 容器连接
4. Docker实例
4.1 Docker 安装 Nginx
4.2 Docker 安装 PHP
4.3 Docker 安装 MySQL
4.4 Docker 安装 Tomcat
4.5 Docker 安装 Python
4.6 Docker 安装 Redis
4.7 Docker 安装 MongoDB
4.8 Docker 安装 Apache
5. Docker参考手册
5.1 Docker 常用命令
 
 

Docker 安装 Python
71 次浏览
9次
 捐助

方法一、通过 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!


您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



71 次浏览
9次
 捐助

 
 

每天2个文档/视频
扫描微信二维码订阅
订阅技术月刊
获得每月300个技术资源
 
 

关于我们 | 联系我们 | 京ICP备10020922号 京公海网安备110108001071号