由于最近一段时间,用到python和docker相关技术。决心把它记忆一下。

前提安装docker,提示:

下面是我所用的Python 结构图

如何在centos7运行python脚本 centos部署python项目_容器


平时在PyCharm里面运行该工程,只要直接运行python-service.py文件即可。文档的存放目录

如何在centos7运行python脚本 centos部署python项目_容器_02


一个Dockerfile文件(没有后缀名)

Dockerfile 是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。有了 Dockerfile,就可以创建我们所需要的镜像。这里我们采用的是阿里云的pip下载源,这样的速度会提高非常多。之前用国外的,头都大了。(提示:docker安装的使用设置为阿里云只是限制在docker里面下载相关的东西,所以下载python的时候会非常的快。但是使用python里提供的工具pip下载相关的插件的时候,这时候的数据源并不是阿里云,需要重新设置,我下面用的就是阿里云)Dockerfile文件内容如下:

如何在centos7运行python脚本 centos部署python项目_Dockerfile_03

#基于的基础镜像
FROM python:3.7.4

#代码添加到code文件夹
ADD ./code /code


# 设置code文件夹是工作目录
WORKDIR /code

# 安装支持
RUN pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/

CMD ["python", "/code/package/python-service.py"]

最后一条命令,就是说,当启动容器时候,执行python-service.py程序。

package就是Python项目的package(整个源码所在目录)直接复制过来的
requirements.txt生成方法:

一个EF_NFCS(任意起的名字)文件夹:包含工程的代码,和运行工程所需要的环境列表
所以,EF_NFCS文件夹,有两个成员package和requirements.txt

cmd命令,进入到【D:\python\EF_NFCS】目录,也就是工程目录,package的同级目录

执行命令:pip freeze > requirements.txt //这个命令执行只需要在项目代码打开执行即可,不用管上面目录设置,上面目录设置是针对于虚拟机的

就在该目录下生成了一个requirements.txt文件:

如下图,可能很大,因为没有配合virtualenv ,就把整个环境中的包都列出来,

没关系,我们可以删除我们此工程中,不需要的组件

如何在centos7运行python脚本 centos部署python项目_docker_04


根据自己的需求添加或者删除相关的东西(自动生成的东西有些是没有必要的)

上传到linux环境,生成镜像
我们将XXX文件夹,压缩成zip包,上传到Linux虚拟机系统中的某个路径下面(可能跟我上面的不太一样,不过没关系,按我的结构来,没问题)

cd /home/workspace/aisjrhfxpt/pythonCode/testPython
docker build . -t ecda-python
docker run -it -p 10000:3000 --name ecda-python ecda-python
 docker run -d -p 10000:3000 --name ecda-python ecda-python //后台运行命令

这样就部署完毕可以正常启动。

注意:
1.自定义的python项目是可以任意放在centos下。
2.删除的时候需要删除容器与镜像
3.docker ps -a 容器 docker images 镜像

docker rmi -f  删除镜像 docker rm -f删除容器

查看安装的docker:yum list installed | grep docker

查看容器:docker ps -a

查看镜像:docker images

删除容器:docker rm 容器ID

删除镜像:docker rmi 镜像ID/镜像名

安装rz上传,sz下载的命令:yum -y install lrzsz

docker inspect 容器ID:返回一个Json文件记录Docker容器的配置和状态信息

 

将容器导出到容器的镜像文件 : docker export 容器ID > update.tar

用容器的镜像文件创建一个新静像:docker import - 镜像名 < update.tar 

 

创建完成之后,生成并启动镜像的容器:docker run -it  镜像名
  1. testPython/code/code/code/package /py代码
    /Dockerfile /requirements.txt
    俩个code
#基于的基础镜像
FROM python:3.7.4

#代码添加到code文件夹
ADD ./code /code


# 设置code文件夹是工作目录
WORKDIR /code

# 安装支持
RUN pip install -r code/requirements.txt -i https://mirrors.aliyun.com/pypi/simple/

CMD ["python", "code/package/python-service.py"]