Docker(二)Dockerfile构建镜像

太过爱你忘了你带给我的痛 2022-02-27 04:37 452阅读 0赞

Dockerfile是一个普通的文本文件,里面包含了许多可以在命令行接口上执行的用来构建镜像的相关指令,我们通过docker build指令就可以读取Dockerfile文件中的指令并执行自动化镜像构建。

一般情况下,Dockerfile文件可分为四个部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时的执行指令。

Dockerfile常用指令:
FROM:指定基础镜像
MAINTAINER:指定镜像维护者信息
RUN:用于执行指定脚本信息
CMD:指定启动容器时执行的命令
EXPOSE:指定容器暴露的端口
ENV:指定环境变量
ADD:将文件从宿主机复制到容器指定位置,同时对压缩文件有自动解压功能
COPY:将文件从宿主机复制到容器指定位置
ENTRYPOINT:设置容器启动时需要运行的命令
WORKDIR:为后续的如RUN、CMD、ENTRYPOINT、COPY、ADD指定工作目录

  • 编写Dockerfile文件

创建一个空文件夹,在该文件夹下新建Dockerfile文件。

  1. # 使用Docker官方的Python作为一个基础镜像
  2. FROM python:2.7-slim
  3. # 设置工作目录/app
  4. WORKDIR /app
  5. # 复制当前目录下的所有内容到容器内的/app目录下
  6. ADD . /app
  7. # 安装在requirements.txt文件中声明的文件包
  8. RUN pip install -r requirements.txt
  9. # 设置容器暴露的端口为80
  10. EXPOSE 80
  11. # 定义环境变量
  12. ENV NAME World
  13. # 当容器启动后立即运行app.py
  14. CMD ["python","app.py"]

当前目录下新建requirements.txt

  1. Flask
  2. Redis

新建app.py

  1. from flask import Flask
  2. import os, socket
  3. app = Flask(__name__)
  4. @app.route("/")
  5. def hello():
  6. html = "<h3>Hello {name}!</h3>" \
  7. "<b>Hostname:</b> {hostname}<br/>"
  8. return html.format(name=os.getenv("NAME", "world"), hostname=socket.gethostname())
  9. if __name__ == "__main__":
  10. app.run(host="0.0.0.0", port=80)
  • 创建镜像
    在当前目录下

    docker build -t hellodocker .

在这里插入图片描述
查看镜像
在这里插入图片描述
运行镜像
在这里插入图片描述
访问网页
在这里插入图片描述
成功!!!

发表评论

表情:
评论列表 (有 0 条评论,452人围观)

还没有评论,来说两句吧...

相关阅读