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

了解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.xdnf.cn/news/4678.html

相关文章:

  • 【计算机网络 第8版】谢希仁编著 第四章网络层 题型总结2
  • 如何用分布式防御抵扣大规模DDoS攻击?
  • 【PostgreSQL数据分析实战:从数据清洗到可视化全流程】电商数据分析案例-9.2 流量转化漏斗分析
  • 前端实战中的单例模式:以医疗药敏管理为例
  • [论文笔记] 超详细解读DeepSeek v3全论文技术报告
  • 零基础入门Hadoop:IntelliJ IDEA远程连接服务器中Hadoop运行WordCount
  • TDEngine 与 Grafana
  • 从零开始在亚马逊云科技 EC2上部署DeepSeek R1大语言模型:完整实战指南
  • Linux 网络命名空间:从内核资源管理到容器网络隔离
  • 算法与数据结构 - 常用图算法总结
  • 观测云:安全、可信赖的监控观测云服务
  • 《React Native性能优化:从卡顿到丝滑的蜕变之旅》
  • 菊厂笔试1
  • Django rest_framework 信号机制生成并使用token
  • SSH 服务部署指南
  • 学习基本乐理知识
  • 【C/C++】RPC与线程间通信:高效设计的关键选择
  • 如何使用npm下载指定版本的cli工具
  • Git查看某个commit的改动
  • 极狐GitLab 容器镜像仓库功能介绍
  • MySQL为什么默认使用RR隔离级别?
  • Spark 之 metrics
  • ubuntu yolov5(c++)算法部署
  • Linux开发工具【中】
  • 适配国产化,私有化部署的局域网即时通讯工具-BeeWorks
  • 【已解决】WORD域相关问题;错误 未找到引用源;复制域出错;交叉引用域到底是个啥
  • 一种机载扫描雷达实时超分辨成像方法——论文阅读
  • 148.WEB渗透测试-MySQL基础(三)
  • 第四章 OpenCV篇—图像梯度与边缘检测—Python
  • 详细聊聊 Synchronized,以及锁的升级过程