Docker是一个开源的应用容器引擎,可以轻松地将应用程序与其依赖项打包在一起,以便在任何环境中快速部署。它可以帮助我们快速构建、测试和部署应用程序,而无需考虑其运行时的依赖性。因此,使用Docker安装Python环境是一个很好的选择。
要使用Docker安装Python环境,首先需要安装Docker服务。可以使用下面的命令来安装Docker服务:
sudo apt-get install docker.io
然后,我们可以使用docker pull命令来拉取Python镜像。例如:
docker pull python:3.7-slim
这将会拉取一个带有Python 3.7版本的slim版本的镜像。我们也可以使用docker search命令来搜索特定版本的Python镜像。
之后,我们就可以使用docker run命令来创建一个新的容器并运行Python了。例如:
docker run -it python:3.7-slim /bin/bash
这将会创建一个新的容器并启动bash shell,然后我们就可以在里面执行python命令了。此外,我们也可以使用docker exec命令来进入已存在的容器中执行python命令。例如:
docker exec -it container_name python -V
上述命令将会显示当前container_name中python版本信息。此外,我也可能会需要在container_name中安装新的python包(如numpy、scipy、matplotlib等) ; 这时就可能会需要使用 pip 工具了。因此我也可能会需要在container_name中安装 pip 工具 ; 这时就可能会需要使用 docker exec 和 pip install 命名来执行诸如下列之类的命名 :
docker exec -it container_name pip install numpy pre >最后 , 我 也 可 能 需 要 释 放 Docker 容 器 ; 这 时 就 需 要 使 甩 docker stop 和 docker rm 味 睹 杣 执 衣 类 伊 的 味 睹 : P >
Docker Stop Container_Name Docker RM Container_Name Pre >通 过 上 面 的 歩 骤 ; 我 么 就 天 构 建 Python 玩 璃 算 成功了 。 Docker 易于郴理理解并构造出 Python 玩 璃 ︳ ︳ ︳ ︳ ︳ ︳ ︳ ︳ ︳ , , , , , , , , , , , , . . . . . . . . . . . . . .
Docker 安装 Python
方法一、通过 Dockerfile 构建
创建Dockerfile
首先,创建目录python,用于存放后面的相关东西。
@:~$ 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创建一个镜像,替换成你自己的名字
@:~/python$ docker build -t python:3.5 .
创建完成后,我们可以在本地的镜像列表里查找到刚刚创建的镜像
@:~/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镜像
@:~/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
@:~/python$ docker pull python:3.5
等待下载完成后,我们就可以在本地镜像列表里查到REPOSITORY为python,标签为3.5的镜像。
使用python镜像
在~/python/myapp目录下创建一个 helloworld.py 文件,代码如下:
#!/usr/bin/python print("Hello, World!");
运行容器
@:~/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!
介绍在Flutter中,widget由其底层的RenderBox对象渲染。 渲染框由它们的父级给出约束,并且在这些约束下调整自身大小。约束由最...
介绍PathProvider插件提供了一种平台透明的方式来访问设备文件系统上的常用位置。该类当前支持访问两个文件系统位置:临时目录:...
H5正常但App异常的可能性css异常:不支持的选择器 非H5端不支持*选择器;body的元素选择器请改为page,同样,div和ul和li等改为v...
uni-app选型评估23问如果你关心竞品对比,这里有几份详尽对比:多端开发框架对比横评,参考:https://juejin.im/post/5ca1736af2...
jQuery Mobile CSS 类 jQuery CSS 类 jQuery Mobile CSS 类来设置不同元素的样式。 以下列表包含了通用的 CSS 样式:全局类 以下...
Android 架构Android 操作系统是一个软件组件的栈,在架构图中它大致可以分为五个部分和四个主要层。Linux内核在所有层的最底下...