十、Docker镜像构建

目录

  • 简介
  • Docker commit命令
  • Docker build命令
  • 演示

一、简介

  • 在日常的工作中,常常需要制作自己的项目的镜像,一般通过以下两种方式制作镜像:Docker commit、Dockerfile

二、Docker commit

  • Docker commit一般用做从一个运行状态的容器来创建一个新的镜像。定制镜像应该使用Dockerfile来完成。默认commit 镜像,对外不可解释,不方便排查问题,可维护性差。
  • docker commit 容器名 新镜像名:tag

三、Docker build

  • 忽略文件:.dockerignore

    image.png

  • 指定文件:docker build -f

  • 添加标签:docker build -t

  • 不使用缓存:docker build --no-cache

  • 构建时变量:docker build --build-arg

    • ARG指令变量


      image.png

      image.png

Dockerfile文件

FROM python:3.7-alpine
LABEL maintainer="insane"

ARG kdir=/tmp

#工作路径设定为
WORKDIR $kdir

#创建环境变量给Flask 使用
ENV FLASK_APP app.py
ENV FLASK_RUN_HOST 0.0.0.0
#复制app.py到容器内/code目录
COPY . .
#安装python的依赖
RUN pip install flask
#映射端口
EXPOSE 5000

STOPSIGNAL SIGTERM

#为容器设置默认启动命令
CMDl ["flask" , "run"]

app.py文件

from flask import Flask
app= Flask(__name__)

@app.route('/')
def hello():
    return 'Hello World!'

python安装依赖文件 requirements.txt

flask
redis

构建镜像

  • docker build -t app:v1 -f Dockerfile .

    image.png

  • 运行容器:docker run -d --name app -p 5000:5000 app:v1

    image.png

  • 访问5000端口


    image.png
  • 进入到容器中:docker exec -it app sh

    image.png

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容