Docker学习(二):Docker化一个Python应用

一、找出需要放入容器的应用依赖

Python项目中必须包含一个 requirements.txt 文件,用于记录所有依赖包及其精确的版本号。以便新环境部署。

requirements.txt可以通过pip命令自动生成和安装

生成requirements.txt文件

pip freeze > requirements.txt
appdirs==1.4.3
backports.functools-lru-cache==1.5
beautifulsoup4==4.5.3
bs4==0.0.1
cycler==0.10.0
kiwisolver==1.0.1
lxml==3.7.3
matplotlib==2.2.0
numpy==1.14.1
pandas==0.22.0
pyparsing==2.2.0
python-dateutil==2.6.1
pytz==2018.3
six==1.11.0
virtualenv==15.1.0

二、编写Dockerfile文件,构建镜像

由于本人公司内网工作环境无法联网,且在内网中已有大量的相关依赖包,会从内网直接拉取。

内网中有python3.6.6的基础镜像。我们就直接在该镜像的基础之上,再下载一些依赖包。

Dockerfile-base作为安装依赖包的文件,并且构建基础镜像的文件。

Dockerfile-base 文件如下:

FROM hub-dev.aoteman.cn:9544/baseimages/python:3.6.6

COPY  requirements.txt /

RUN pip install -i http://172.21.54.223:3141/root/pypi --trusted-host 172.21.54.223 -rrequirements.txt && \
    rm requirements.txt && \
    rm -rf /root/.cache/pip/

然后我们再写一个安装的脚本。针对Dockerfile-base文件的安装脚本。

#!/bin/bash

docker build -t hub-dev.hexin.cn:9544/hxquant/cnn:base -f Dockerfile-base .

安装成功之后,基础镜像的名字就是hub-dev.hexin.cn:9544/hxquant/cnn, TAG为base

三、使用镜像

首先我们可以使用docker images的指令,来找到我们建好的基础镜像。

然后使用镜像进入交互式容器。

扫描二维码关注公众号,回复: 4923184 查看本文章

docker  run  -it  hub-dev.hexin.cn:9544/hxquant/cnn:base  /bin/bash

进入容器之后,我们需要将本地的项目拷贝到该容器里面。

假设项目名字叫做aoteman

我们首先要通过 docker ps -a 来查看当前运行的容器,这样就可以找到刚刚运行的容器的ID

假设ID为xxxxxxxxxxxxx

如果我们想把aoteman项目拷贝到容器的/root/路径下面,我们可以这样——

docker  cp  aoteman  xxxxxxxxxxxx:/root/

猜你喜欢

转载自blog.csdn.net/liao392781/article/details/86004822