本文是一个简单的python容器部署工作流,按照「Docker开发指南」一书实践。

案例是采用Flask实现的一个简单web程序,仅用于展示Docker工作流程。

简单的Web服务代码

  • 示例程序名字是identidock,创建程序目录
mkdir -p identidock/app
cd identidock/app
vi identidock.py
  • 创建Web服务

按照以下目录结构

]$ tree identidock/
identidock/
└── app
    └── identidock.py

identidock.py代码内容如下

from flask import Flask
app = Flask(__name__)


@app.route('/')
def hello_world():
    return 'Hello Docker!\n'

if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0')
  • identidock目录下创建Dockerfile内容如下:
From python:3.4

RUN pip install Flask==0.12.2
WORKDIR /app
COPY app /app

CMD ["python", "identidock.py"]

以上Dockerfile使用Python 3的官方基础镜像,并在镜像基础之上安装 Flask ,然后复制代码金曲,并运行identidock代码。

许多流行的编程语言,例如 Python、Go 和 Ruby,它们的官方仓库中都有多个变种镜像以供不同用途:

  • slim - 这种镜像是标准镜像的精简版本。它们缺少很多常见的软件包和库。适合在生产环境部署,但是不适合开发环境(缺少标准镜像中的工具软件包等)
  • onbuild - 这种镜像使用 Dockerfile 的 ONBUILD 指令,它会把某些命令延后至继承这个 onbuild 镜像的“子镜像”中执行,而执行的时刻便是新建这个子镜像的时候。
  • 构建运行
cd identidock
docker build -t identidock .

results matching ""

    No results matching ""