Docker 打包Python应用

423 阅读1分钟

1. 创建Python应用

Flask是Python的一个轻量级Web应用框架,简单易用,可以很快速地创建web应用。我们用它来创建此demo应用。首先用virtualenv来为应用创建一套“隔离”的Python运行环境。

virtualenv demo

cd demo

source bin/activate

mkdir FlaskApp

cd FlaskApp

使用下面命令安装Flask模块:

pip install flask

将项目的依赖包和其对应版本导入requirements.txt:

pip freeze > requirements.txt

如下图所示,创建app.py文件:

mkdir app

vi app/app.py

创建Dockerfile文件:

vi Dockerfile:

当前的目录结构如下图所示:

2. 构建Docker镜像

docker build -t demo:0.1 .

3. 调试模式运行

docker run -d --name flask_app -v $PWD/app:/app -p 5000:5000 demo:0.1

4. docker容器与系统时间同步

在Docker容器创建好之后,可能会发现容器时间跟宿主机时间不一致,这就需要同步它们的时间,让容器时间跟宿主机时间保持一致。

方式一:

复制主机的localtime: docker cp /etc/localtime <container_id>:/etc/

方式二:

在Dockerfile文件里添加下面内容:

RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone