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

了解Dockerfile

  1. 定制docker 镜像的方式:
  • 手动修改容器内容,导出新的镜像
  • 基于dockerfile 自行编写指令,基于指令流程创建镜像
  1. 镜像和容器的层级实现
  • docker拉取镜像到docker engine 之后,共享系统内核。
    在内核层上有镜像层(本质上只读的文件)
    再依据镜像创建容器层(本质上就是给文件增加一个写的功能)
    在这里插入图片描述
  • 自己编写Dockerfile文件,在创建镜像的时候,是根据指令依次创建的(镜像是多层存储,每一层在前一层的基础上进行修改)
    依次递加完成之后,最终形成一个新的镜像,最后再生成容器
    在这里插入图片描述
  1. dockerfile介绍
    dockerfile用于构建docker镜像,部署一个属于自己的容器环境。相当于一个脚本通过dockerfile中的指令来构建软件的环境依赖,文件依赖以及存储等等信息。
    传统的拉取的镜像并使用的方式定制属于自己的docker镜像需要在其镜像的基础之上,会增加不必要的镜像内容,因此需要了解dockerfile中的内容,来实现自行编写指令。
  2. dockerfile的主要组成部分(基础镜像信息、制作镜像的操作指令、容器启动时执行的命令)
# 基础镜像信息(镜像是基于什么做的)
FROM ubuntu:latest
# 在创建镜像的时候需要运行的命令
RUN apt install xxx
# 在生成容器时要执行的命令
CMD ["/bin/bash"]
  1. dockerfile中的详细信息
# 基础镜像
FROM node:alpine
# 维护者信息 (可以没有)
MAINTAINER NAME "123@abc.COM"# 拷贝以来文件并安装,copy 主机目录(源头) docker容器目录(目标)
COPY package*.json ./
# add 主机目录 docker目录(add和copy的作用一直,但是add会自动解压,也可以是网址,会自动下载)# 和python中的pip install一样
RUN npm install # 创建工程目录
WORKDIR /usr/src/app
# copy的第一个.相对路径(主机目录)
# copy的第二个.相对路径(docker镜像目录)
COPY . .# 设置容器内的数据卷,仅仅是声明的作用,具体的映射工作需要在运行容器的时候加上-v操作
VOLUME ["/data"]# 运行在3000端口(容器的端口)
# 运行到主机端口需要用到端口映射
# 端口映射:容器端口  映射 主机端口
# 	——> 在主机通过主机端口去运行容器
EXPOSE 3000# 设置环境变量
# ENV 环境变量# 运行server.js(镜像到容器的分界,使静态转化为动态可运行的状态,在cmd中要写的内容)
CMD ["node","sever.js"]
# 和ENTRYPOINT ["node","sever.js"] 的命令执行结果一致

注:Dockerfile中的关键系必须是大写的,不然构建镜像的时候会出错。

http://www.dtcms.com/a/179440.html

相关文章:

  • cat、more和less的区别
  • WHAT - ahooks vs swr 请求
  • 【万字长文】深入浅出 LlamaIndex 和 LangChain:从RAG到智能体,轻松驾驭LLM应用开发
  • 关于form、自定义Hook、灰度发布、正则表达(只能输入数字和不要空格)
  • kafka logs storage
  • 【LeetCode 热题 100】二叉树 系列
  • 深入解析 C# 常用数据结构:特点、区别与优缺点分析
  • 快速上手Pytorch Lighting框架 | 深度学习入门
  • 经济体制1
  • 网络基础入门第6-7集(抓包技术)
  • 含铜废水循环利用体系
  • 【RAG】indexing 中的 Hierarchical Indexing(分层索引)
  • 手写 Vue 源码 === 依赖清理机制详解
  • Arm核的Ubuntu系统上安装Qt
  • 系统网络运维基础:Linux与Windows实践指南(带电子书资料)
  • Qt 通过控件按钮实现hello world + 命名规范(7)
  • 课外活动:简单了解原生测试框架Unittest前置后置的逻辑
  • Vue.js Watch 侦听器:深入理解与应用
  • 低代码云MES、轻量级部署、让智造更简单
  • 【AI入门】CherryStudio入门5:创建知识库,对接Obsidian 笔记
  • 特殊版本,官宣永久免费
  • 摄像头模组AF、OIS模组
  • 308.旅行终点站
  • 援外培训项目冈比亚数字政府能力建设研修班莅临麒麟信安参观考察
  • Linux基础(最常用基本命令)
  • 移动端返回指定页面
  • Linux命令行参数注入详解
  • MacBook M2芯片 Sequoia15.4.1 安装免费版VMware Fusion 13.6.3版本
  • 【详细图文】使用MobaXterm的SSH功能远程连接服务器,并创建pytorch环境,使用yolov8训练数据集
  • 大数据TopK问题