一、创建docker目录
在目录下面新建三个文件:
- Dockerfile
- 项目文件
- 项目依赖: requirements.txt
Dockerfile文件内容格式如下:
1 | # 基于镜像基础 |
自动生成requirements.txt
进入需要生成文件的目录,执行pip freeze > requirements.txt,此方法会包含环境所有的依赖包。
Python Docker镜像
Docker python基础镜像
1 | FROM python:3.6 |
Alpine Linux ,最初是为小型设备设计的操作系统,因此往往有小包装。
1 | FROM python:3.6-alpine |
Debian Stretch
,安装了许多常见软件包。镜像本身很大,但理论上这些软件包是通过其他Docker镜像将使用的公共镜像层安装的,因此整体磁盘使用率会很低。
1 | FROM python:3.6-stretch |
Debian Stretch slim
版。这缺少了通用软件包的层,因此镜像本身要小得多,但如果你使用Stretch以外的许多其他Docker镜像,整体磁盘使用量会更高一些。
1 | FROM python:3.6-slim-stretch |
查看Python镜像大小,其中alpine 是最小的。
1 | $ docker images | grep python |
对于想要小镜像的人来说,一个常见的建议是使用Alpine Linux,但使用它会产生一些问题。首先,Alpine的库比我上面提到的其他Linux发行版少得多,因此你可能会缺少库。
Alpine和其他Linux发行版之间也存在重大差异:Alpine使用不同的C库,而不是更常见的glibc。 理论上,musl和glibc 大多是兼容的,但这些差异可能会导致奇怪的问题。
大多数这些问题已经得到解决,但可能发现更多问题。为了减少镜像体积,而导致可能发生的不确定性问题,这是不值得的。因此,这里建议不要使用Alpine。