Docker(二)Dockerfile构建镜像
Dockerfile是一个普通的文本文件,里面包含了许多可以在命令行接口上执行的用来构建镜像的相关指令,我们通过docker build指令就可以读取Dockerfile文件中的指令并执行自动化镜像构建。
一般情况下,Dockerfile文件可分为四个部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时的执行指令。
Dockerfile常用指令:
FROM:指定基础镜像
MAINTAINER:指定镜像维护者信息
RUN:用于执行指定脚本信息
CMD:指定启动容器时执行的命令
EXPOSE:指定容器暴露的端口
ENV:指定环境变量
ADD:将文件从宿主机复制到容器指定位置,同时对压缩文件有自动解压功能
COPY:将文件从宿主机复制到容器指定位置
ENTRYPOINT:设置容器启动时需要运行的命令
WORKDIR:为后续的如RUN、CMD、ENTRYPOINT、COPY、ADD指定工作目录
创建一个空文件夹,在该文件夹下新建Dockerfile文件。
# 使用Docker官方的Python作为一个基础镜像
FROM python:2.7-slim
# 设置工作目录/app
WORKDIR /app
# 复制当前目录下的所有内容到容器内的/app目录下
ADD . /app
# 安装在requirements.txt文件中声明的文件包
RUN pip install -r requirements.txt
# 设置容器暴露的端口为80
EXPOSE 80
# 定义环境变量
ENV NAME World
# 当容器启动后立即运行app.py
CMD ["python","app.py"]
当前目录下新建requirements.txt
Flask
Redis
新建app.py
from flask import Flask
import os, socket
app = Flask(__name__)
@app.route("/")
def hello():
html = "<h3>Hello {name}!</h3>" \
"<b>Hostname:</b> {hostname}<br/>"
return html.format(name=os.getenv("NAME", "world"), hostname=socket.gethostname())
if __name__ == "__main__":
app.run(host="0.0.0.0", port=80)
创建镜像
在当前目录下docker build -t hellodocker .
查看镜像
运行镜像
访问网页
成功!!!
还没有评论,来说两句吧...