十九、docker学习-Dockerfile
Dockerfile
官网地址
https://docs.docker.com/engine/reference/builder/
Dockerfile其实就是我们用来构建Docker镜像的源码,当然这不是所谓的编程源码,而是一些命令的集合,只要理解它的逻辑和语法格式,就可以很容易的编写Dockerfile。简单点说,Dockerfile可以让用户个性化定制Docker镜像。因为工作环境中的需求各式各样,网络上的镜像很难满足实际的需求。
Dockerfile的基本结构
Dockerfile是一个包含用于组合映像的命令的文本文档。可以使用在命令行中调用任何命令。 Docker通过读取Dockerfile中的指令自动生成映像。
docker build命令用于从Dockerfile构建映像。可以在docker build命令中使用 -f 标志指向文件系统中任何位置的Dockerfile。
Dockerfile由一行行命令语句组成,并且支持以#开头的注释行
Dockerfile分为四部分:基础镜像信息、维护者信息、 镜像操作指令和容器启动时执行指令
Dockerfile文件说明
Docker以从上到下的顺序运行Dockerfile的指令。为了指定基本映像,第一条指令必须是FROM。一个声明以 # 字符开头则被视为注释。可以在Docker文件中使用 RUN , CMD , FROM , EXPOSE , ENV 等指令。
Dockerfile常见命令
| 命令 | 说明 |
|---|---|
| FROM | 指定基础镜像,必须为第一个命令 |
| MAINTAINER | 维护者(作者)信息 |
| ENV | 设置环境变量 |
| RUN | 构建镜像时执行的命令 |
| CMD | 构建容器后调用,也就是在容器启动时才进行调用。 |
| ENTRYPOINT | 指定运行容器启动过程执行命令,覆盖CMD参数ENTRYPOINT与CMD非常类似,不同的是通过docker run执行的命令不会覆盖ENTRYPOINT,而docker run命令中指定的任何参数,都会被当做参数再次传递给ENTRYPOINT。Dockerfile中只允许有一个ENTRYPOINT命令,多指定时会覆盖前面的设置,而只执行最后的ENTRYPOINT指令。 |
| ADD | 将本地文件添加到容器中,tar类型文件会自动解压(网络压缩资源不会被解压),可以访问网络资源,类似wget |
| COPY | 功能类似ADD,但是是不会自动解压文件,也不能访问网络资源 |
| WORKDIR | 工作目录,类似于cd命令 |
| ARG | 用于指定传递给构建运行时的变量 |
| VOLUMN | 用于指定持久化目录 |
| EXPOSE | 指定于外界交互的端口 |
| USER | 指定运行容器时的用户名或 UID,后续的 RUN 也会使用指定用户。使用USER指定用户时,可以使用用户名、UID或GID,或是两者的组合。当服务不需要管理员权限时,可以通过该命令指定运行用户。并且可以在之前创建所需要的用户 |
IDEA安装docker插件
idea安装docker插件。Dockerfile、docker-compose.yml文件大部分内容会有提示信息。方便开发人员编写配置文件。
https://plugins.jetbrains.com/plugin/7724-docker/versions
制作自定义镜像
build命令
docker build 命令用于使用 Dockerfile 创建镜像。
# 语法
docker build [OPTIONS] PATH | URL | -
常用参数
build命令参数特别多。这里只给大家介绍几个常用的参数,如果小伙伴们想了解更多内容,请参考docker官网手册。
- –build-arg=[] : 设置镜像创建时的变量;
- -f : 指定要使用的Dockerfile路径;
- –rm : 设置镜像成功后删除中间容器;
- –tag, -t: 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。
制作MySQL镜像
MySQL镜像官方镜像默认为世界时钟,我们要制作成中国的东八区。
制作dockerfile文件
FROM mysql:5.7.31
# 作者信息
MAINTAINER mysql from date UTC by Asia/Shanghai "yc@yc.com"
ENV TZ Asia/Shanghai
创建自定义镜像
# 不指定dockerfile路径,默认使用当前路径下dockerfile文件
docker build -t mysql:5.7.31-zh .

启动自定义mysql
# 启动mysql,mysql需要设置默认密码
docker run -itd --name mysql -e MYSQL_ROOT_PASSWORD=root mysql:5.7.31-zh
# 进入容器观察时间
docker exec -it mysql bash
date
相关文章:
十九、docker学习-Dockerfile
Dockerfile 官网地址 https://docs.docker.com/engine/reference/builder/Dockerfile其实就是我们用来构建Docker镜像的源码,当然这不是所谓的编程源码,而是一些命令的集合,只要理解它的逻辑和语法格式,就可以很容易的编写Docke…...
Docker容器的数据卷
1.数据卷的概念及作用 2.数据卷的配置 创建容器并挂载数据卷: docker run -it --namec1 -v /root/data:/root/data_container centos:7 /bin/bash按照容器挂载数据卷的原理,data_contianer这个目录下也会同步下来数据的更改。 3.一个容器挂载多个数据…...
推荐工具!使终端便于 DevOps 和 Kubernetes 使用
如果你熟悉 DevOps 和 Kubernetes 的使用,就会知道命令行界面(CLI)对于管理任务有多么重要。好在现在市面上有一些工具可以让终端在这些环境中更容易使用。在本文中,我们将探讨可以让工作流程简化的优秀工具,帮助你在 …...
抖音小程序实现less语言编译样式
1.在抖音开发工具中搜索扩展less 2. 然后点击小齿轮选择扩展设置 3. 然后在扩展设置中选择在settings.json中编辑# 4. 在settings.json中加入以下这段代码即可 // Easy LESS配置"less.compile": {"compress": false,//是否压缩"sourceMap": fal…...
介绍 TensorFlow 的基本概念和使用场景
TensorFlow 是一种开源的机器学习框架,由 Google 开发。它是用来构建和训练机器学习模型的强大工具,支持很多种不同类型的机器学习算法,并使用数据流图来表示计算过程。 TensorFlow 的核心是张量 (Tensor) 和计算图 (Graph)。 张量 (Tensor)…...
抖音关键词搜索小程序排名怎么做
抖音关键词搜索小程序排名怎么做 1 分钟教你制作一个抖音小程序。 抖音小程序就是我的视频,左下方这个蓝色的链接,点进去就是抖音小程序。 如果你有了这个小程序,发布视频的时候可以挂载这个小程序,直播的时候也可以挂载这个小…...
Windows下升级jdk1.8小版本
1.首先下载要升级jdk最新版本,下载地址:Java Downloads | Oracle 中国 2.下载完毕之后,直接双击下载完毕后的文件,进行安装。 3.安装完毕后,调整环境变量至新安装的jdk位置 4.此时,idea启动项目有可能会出…...
[保研/考研机试] KY235 进制转换2 清华大学复试上机题 C++实现
题目链接: KY235 进制转换2 https://www.nowcoder.com/questionTerminal/ae4b3c4a968745618d65b866002bbd32 描述 将M进制的数X转换为N进制的数输出。 输入描述: 输入的第一行包括两个整数:M和N(2<M,N<36)。 下面的一行输入一个数…...
机器学习 | Python实现KNN(K近邻)模型实践
机器学习 | Python实现KNN(K近邻)模型实践 目录 机器学习 | Python实现KNN(K近邻)模型实践基本介绍模型原理源码设计学习小结参考资料基本介绍 一句话就可以概括出KNN(K最近邻算法)的算法原理:综合k个“邻居”的标签值作为新样本的预测值。更具体来讲KNN分类过程,给定一个训…...
Mybatis 源码 ③ :SqlSession
一、前言 Mybatis 官网 以及 本系列文章地址: Mybatis 源码 ① :开篇Mybatis 源码 ② :流程分析Mybatis 源码 ③ :SqlSessionMybatis 源码 ④ :TypeHandlerMybatis 源码 ∞ :杂七杂八 在 Mybatis 源码 ②…...
Python 潮流周刊#15:如何分析异步任务的性能?
△点击上方“Python猫”关注 ,回复“1”领取电子书 你好,我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容,大部分为英文。标题取自其中一则分享,不代表全部内容都是该主题,特此声明。 本周刊精心筛选国内外的…...
二叉搜索树K和KV结构模拟
一 什么是二叉搜索树 这个的结构特性非常重要,是后面函数实现的结构基础,二叉搜索树的特性是每个根节点都比自己的左树任一节点大,比自己的右树任一节点小。 例如这个图, 41是根节点,要比左树大,比右树小&…...
nlohmann json:检查object是否存在某个键
1.通过find进行检查 #include <iostream> #include <nlohmann/json.hpp> using namespace std; using json = nlohmann::json;int main() {json data = R"({"name": "xiaoming","age": 10, "parent": [{"fat…...
15-1_Qt 5.9 C++开发指南_Qt多媒体模块概述
多媒体功能指的主要是计算机的音频和视频的输入、输出、显示和播放等功能,Qt 的多媒体模块为音频和视频播放、录音、摄像头拍照和录像等提供支持,甚至还提供数字收音机的支持。本章将介绍 Qt 多媒体模块的功能和使用。 文章目录 1. Qt 多媒体模块概述2. …...
分页查询中起始位置的计算
在分页查询中,page 和 pageSize 其实就是表示页数和每页的条数。这两个参数通常用于在数据库查询时进行分页。 如果你想根据 page 和 pageSize 计算数据的起始位置(例如,MySQL数据库的LIMIT查询),可以使用以下公式&am…...
Failed to execute goal org.apache.maven.plugins
原因: 这个文件D:\java\maven\com\ruoyi\pg-student\maven-metadata-local.xml出了问题 解决: 最简单的直接删除D:\java\maven\com\ruoyi\pg-student\maven-metadata-local.xml重新打包 或者把D:\java\maven\com\ruoyi\pg-student这个目录下所有文件…...
50吨收费站生活一体化污水处理设备厂家价格低
50吨收费站生活一体化污水处理设备厂家价格低 设备工艺说明 污水处理设备主要用于生活污水和与之类似的工业有机废水的处理,其主要处理方法是采用目前较为成熟的生化处理技术—生物接触氧化,水质设计按一般生活污水水质设计计算,按BOD5平均20…...
UG NX二次开发(C#)-CAM-获取刀具类型
文章目录 1、前言2、UG NX中的刀具类型3、获取刀具类型3.1 刀具类型帮助文档1、前言 在UG NX的加工模块,加工刀具是一个必要的因素,其包括了多种类型的类型,有铣刀、钻刀、车刀、磨刀、成型刀等等,而且每种刀具所包含的信息也各不相同。想获取刀具的信息,那就要知道刀具的…...
Flask 框架集成Bootstrap
前面学习了 Flask 框架的基本用法,以及模板引擎 Jinja2,按理说可以开始自己的 Web 之旅了,不过在启程之前,还有个重要的武器需要了解一下,就是著名的 Bootstrap 框架和 Flask 的结合,这将大大提高开发 Web …...
在k8s 1.26.6上部署ES集群
一、k8s集群架构: IP 角色,左边是ip,右边是hostname master1 是192.168.1.3 的hostname 192.168.1.3 master1 192.168.1.4 master2 192.168.1.5 master3 192.168.1.6 node1 192.168.1.7 node2 二、部署ES集群 1、配置stor…...
模糊控制系统中去模糊化(Defuzzification)方法实战解析
1. 为什么需要去模糊化? 想象一下你在调节空调温度的场景。当室温达到28℃时,传统控制系统会直接给出"开50%制冷"的指令。但模糊控制系统会说:"温度有点高,制冷力度中等偏强"。这个"中等偏强"就是模…...
只知道 `<ul>` 和 `<ol>`?扒一扒京东大厂都在用的“冷门”排版神标签(附实战代码)
我在审查新手代码或者做渗透测试时,经常会去扒各大网站的前端源码。 我发现一个非常有意思的现象:很多刚入行的新手在写网页列表时,无论遇到什么排版,脑子里永远只有 <ul>、<li> 和 <div>。特别是在做类似“京东首页左侧分类导航”或者“人物名片介绍”…...
Python的__subclasshook__方法在抽象基类动态子类检查中的扩展
Python作为一门动态语言,其抽象基类(ABC)机制通过__subclasshook__方法实现了灵活的子类检查能力。这一特性打破了传统继承关系的静态限制,允许开发者在不修改类继承结构的情况下,动态判断类之间的逻辑关系。本文将深入…...
04-微服务篇
文章目录一、Spring Cloud1. Spring Cloud 5大组件有哪些?2. 服务注册和发现是什么意思?Spring Cloud 如何实现服务注册发现?3. 我看你之前也用过nacos,你能说下nacos与eureka的区别?4. 你们项目负载均衡如何实现的&am…...
物联网平台层避坑指南:华为云IoT vs 阿里云物联网平台功能对比(2024新版)
华为云IoT与阿里云物联网平台深度对比:2024企业选型实战指南 当企业决定将业务迁移到物联网平台时,技术选型往往成为第一个关键决策点。作为国内市场份额最高的两大平台,华为云IoT和阿里云物联网平台各自拥有独特的优势与适用场景。但在实际商…...
LeetCode 最长回文子串:python 题解几
1 实用案例 1.1 表格样式生成 本示例用于生成包含富文本样式与单元格背景色的Word表格文档。 模板内容: 渲染代码: # python-docx-template/blob/master/tests/comments.py from docxtpl import DocxTemplate, RichText # data: python-docx-template/bl…...
掌握PerfView:ETW与EventPipe数据模型的终极指南
掌握PerfView:ETW与EventPipe数据模型的终极指南 【免费下载链接】perfview PerfView is a CPU and memory performance-analysis tool 项目地址: https://gitcode.com/gh_mirrors/pe/perfview PerfView是一款强大的CPU和内存性能分析工具,它能够…...
重庆大学LaTeX论文模板终极指南:如何轻松搞定毕业设计格式排版
重庆大学LaTeX论文模板终极指南:如何轻松搞定毕业设计格式排版 【免费下载链接】CQUThesis :pencil: 重庆大学毕业论文LaTeX模板---LaTeX Thesis Template for Chongqing University 项目地址: https://gitcode.com/gh_mirrors/cq/CQUThesis 还在为毕业论文格…...
闲置机顶盒秒变Linux服务器:Armbian 20.10 Buster搭配rtl8188eu网卡实战教程
闲置机顶盒改造指南:Armbian系统与rtl8188eu网卡的完美融合方案 家里积灰的旧机顶盒除了占地方还能做什么?今天我们就来解锁它的隐藏技能——低成本打造一台高性能Linux服务器。不同于常规教程的流水账式操作,本文将深入探讨硬件适配原理与实…...
OBS背景移除插件:零绿幕实现专业级直播虚化的终极指南
OBS背景移除插件:零绿幕实现专业级直播虚化的终极指南 【免费下载链接】obs-backgroundremoval An OBS plugin for removing background in portrait images (video), making it easy to replace the background when recording or streaming. 项目地址: https://…...
