当前位置: 首页 > news >正文

dockerfile构建镜像方式

在 Docker 中,可使用 docker build 命令依据 Dockerfile 构建镜像。下面为你详细介绍构建镜像的具体方式。

基本构建命令

若要构建镜像,需在包含 Dockerfile 的目录下执行 docker build 命令。基本语法如下:

bash

docker build -t <镜像名称>:<标签> <构建上下文路径>

参数解释:

  • -t:用于给构建的镜像添加标签,格式为 镜像名称:标签,若不指定标签,默认为 latest
  • <构建上下文路径>:这是一个目录路径,Docker 会将该目录下的所有文件和文件夹作为构建上下文发送给 Docker 守护进程。

示例

假设你有一个简单的 Python Flask 应用,其目录结构和文件内容如下:

plaintext

app/
├── app.py
└── Dockerfile
app.py 文件内容

python

from flask import Flask

app = Flask(__name__)

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

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)
Dockerfile 文件内容

Dockerfile

# 使用 Python 3.9 基础镜像
FROM python:3.9-slim

# 设置工作目录
WORKDIR /app

# 复制当前目录下的所有文件到工作目录
COPY . .

# 安装依赖
RUN pip install flask

# 暴露端口
EXPOSE 5000

# 运行应用
CMD ["python", "app.py"]
构建镜像

在 app 目录下执行以下命令来构建镜像:

bash

docker build -t my-flask-app:1.0 .

这里的 . 代表当前目录,也就是构建上下文路径。

其他构建选项

  • 指定 Dockerfile 文件:若 Dockerfile 不在当前目录或者文件名不是 Dockerfile,可以使用 -f 选项指定 Dockerfile 文件的路径。

bash

docker build -t my-flask-app:1.0 -f path/to/Dockerfile .

  • 禁用缓存:构建时可以使用 --no-cache 选项禁用 Docker 构建缓存,这样每次构建都会重新执行所有步骤。

bash

docker build --no-cache -t my-flask-app:1.0 .

构建后的验证

构建完成后,可使用 docker images 命令查看本地已构建的镜像:

bash

docker images

你应该能看到 my-flask-app:1.0 镜像列在其中。

运行镜像

构建好镜像后,你可以使用 docker run 命令来运行容器:

bash

docker run -p 5000:5000 my-flask-app:1.0

这里的 -p 5000:5000 表示将容器的 5000 端口映射到主机的 5000 端口。之后,你就可以通过浏览器访问 http://localhost:5000 来查看应用的输出

相关文章:

  • 前端解决方案:实现网页截图并导出PDF功能
  • 深入解析 JSON-RPC:从基础到高级应用(附调用示例)
  • 第十二章——位运算
  • 通用人工智能(AGI)的发展路径(人工智能通识)
  • 任意文件读取漏洞
  • knowledge-vscode中配置java环境(JDK-8下载,配置 Maven 并创建项目)
  • 图像(numpy)与Base64互转
  • vue create创建 Vue-router 工程
  • AI赋能SEO关键词智能优化
  • VMware虚拟机 ubuntu22.04无法与共享粘贴板和拖拽文件的解决方案
  • 细说AGV叉车的导航,如何精准定位并选取最优路径?
  • NX二次开发刻字功能——预览功能
  • 盈亏平衡分析
  • SWEET-RL:基于训练时信息的多轮LLM代理强化学习框架
  • 计算机二级WPS Office第十二套WPS演示
  • LIMS系统如何构筑染料质检的防线 质检LIMS系统在染料生产企业的应用
  • 在学校图书馆知识库中进行论文检索报告生成
  • 【Kafka】深入探讨 Kafka 如何保证一致性
  • 《白帽子讲 Web 安全》之服务端请求伪造(SSRF)深度剖析:从攻击到防御
  • 【云成本优化案例】K8s计费探针让跨境电商企业节省30%云预算
  • 韶关一企业将消防安装工程肢解发包,广东住建厅:罚款逾五万
  • 德州国资欲退出三东筑工,后者大股东系当地房企东海集团
  • 铁路端午假期运输火车票今日开售,12306提升应对超大规模并发访问需求能力
  • 中科飞测将投资超10亿元,在上海张江成立第二总部
  • 人民日报仲音:大力纠治违规吃喝顽瘴痼疾
  • 王毅谈中拉命运共同体建设“五大工程”及落实举措