《Docker实战入门教程(一)》介绍了从镜像仓库中拉取镜像,并将应用容器化。本文将通过一个简单的Python例子,构建一个自己的镜像,并容器化应用。
新的开发环境
Docker技术出现之前,我们一般开发应用时,都要在机器上配置相应的开发环境,如python的运行环境、java应用的jvm以及各种配置等。但在项目实施的过程中,往往会有这样一种尴尬,就是在开发环境运行正确的应用,到了测试环境和生产环境就会出现各种问题。这种尴尬给开发、交付以及后期的运维带来了不小的困扰。
现在使用Docker,只需获取一个可移植的应用程序运行时作为镜像(基础镜像),并不需要安装。构建自己的应用程序镜像时,可以将基本的运行时镜像和应用程序代码放在一起构成新的镜像使用,可确保应用程序、其依赖项和运行时一起运行。
定义容器
Docker使用Dockerfile来定义容器内所有环境。对网络接口和磁盘驱动器等资源的访问均在该环境中进行了虚拟化,该环境与宿主机系统以及其他容器环境隔离,因此在定义容器时,需要将端口映射到容器外部,并具体说明要将哪些文件“复制”到该环境中。这样,通过Dockerfile定义的应用程序镜像构建后,可以在任何地方运行而且所的程序运行都完全相同。
1.在本地计算机上创建一个新目录,如helloDemo。
![dd380b2eda3f9f8246e9bda1cd1e96f3.png](https://img-blog.csdnimg.cn/img_convert/dd380b2eda3f9f8246e9bda1cd1e96f3.png)
2.在helloDemo目录中创建dockerfile文件和requirements.txt以及hello.py的文件。
![f2b41a654d7997cde8b6cb833f15da14.png](https://img-blog.csdnimg.cn/img_convert/f2b41a654d7997cde8b6cb833f15da14.png)
3.将以下内容分别复制并粘贴到相应文件中,然后保存。
3.1 requirements.txt
FlaskRedis
3.2 Dockerfile
# 使用官方的Python运行时作为基础镜像
FROM python:2.7-slim
# 设置工作目录 /app
WORKDIR /app
# 拷贝当前目录的崆到容器的目录/app中
COPY . /app
# 安装requirements.txt文件中指定的程序包RUN pip install --trusted-host pypi.python.org -r requirements.txt
# 暴露 80端口
EXPOSE 80
# 定义环境变量ENV NAME World
# 运行 hello.py
CMD ["python