小白docker入门简介

Dockerfile入门使用分享

    • 一、docker是啥
    • 二、镜像仓库
    • 三、自定义镜像
    • 四、动手做机甲玩偶
    • 五、帮我做数学题
    • 六、计算功能的写法
    • 七、咒语翻译器
    • 八、放屁
    • 九、解决问题

一、docker是啥

最开始我和你一样,围着镜像容器docker的名词团团转,其实没那么复杂。简单说我们就是做个微型的小电脑模型,把需要的软件都装进去。后面就可以根据这个模型做一个真的电脑出来。

还没懂

就是你有个高达的钥匙链,因为是个钥匙链,所以它只能看着。但是你有个咒语,叫刀客乱,拿着高达钥匙链的人,只要一念刀客乱,高达钥匙链就会闪闪发光,在你面前创造出一个真正的机甲高达出来,能跑能跳能打枪

是不是很厉害,一个钥匙链的玩偶,不是只能创建1个真正的高达,能创造很多个高达出来,这就是厉害之处!
钥匙链玩偶就是镜像,被创造出来的真的高达就是容器
不会动
会动!

二、镜像仓库

有些人为了方便,自己做了很多镜像,然后放到一个商店里面去买,很多都是不收钱的,这个商店就是镜像商店。就是里面有很多的玩偶钥匙链。
你买了就能造一个真的机甲战士出来!多么酷!

三、自定义镜像

后来有一天,你梦到一个拥有计算数学功能的机甲战士,你跑去商店问老板,结果商店里面没有这种特意功能的玩偶!你特别沮丧,在回家的路上,你听别人说,可以自己做玩偶
做法就是把机甲战士需要的特异功能(计算)写在一张纸上,然后念一个咒语刀客币路豆,就能造出一个机甲玩偶战士出来!
这神奇的纸就是Dockerfile

四、动手做机甲玩偶

在Dockerfile的纸上写下特异功能

# 使用 Nginx 作为基础镜像
# 就是找一个显示器nginx
FROM nginx:alpine# 将本地的 index.html 复制到容器中的 Nginx 默认网站目录
# 你想让机甲战士会算简单计算数学js,把加减乘除的运算规则写这里index.html
COPY index.html /usr/share/nginx/html/# 暴露 80 端口
# 让机甲战士用哪个对讲机和你说话,这里是80号对讲机
EXPOSE 80

然后念咒语刀客币路豆(docker build -t js .),就做出一个叫js名字的玩偶(镜像)。

五、帮我做数学题

前面说了,玩偶是不能动的,需要动的话,还要向玩偶念咒语刀客乱(docker run -d -p 8080:80 --name jsq js),一个叫jsq(计算器)的机甲战士就出现在你的眼前了,你用自己的8080对讲机朝着jsq机甲战士的80对讲机讲话,告诉jiq机甲战士,你要算什么数学题!
在这里插入图片描述

六、计算功能的写法

Dockerfile就是文件名,没有后缀。此外,Dockerfile文件和index.html文件需要在同一个目录下
Dockerfile⬇️

# 使用官方的 Nginx 基础镜像
FROM nginx:latest# 将自定义 HTML 文件复制到容器中的 Nginx 默认根目录
COPY index.html /usr/share/nginx/html/index.html# 暴露 Nginx 默认的 80 端口
EXPOSE 80

index.html⬇️

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Simple Calculator</title><style>body {font-family: Arial, sans-serif;margin: 20px;}.calculator {margin: 0 auto;max-width: 300px;padding: 10px;border: 1px solid #ddd;border-radius: 5px;}.calculator input, .calculator button {width: 100%;padding: 10px;margin: 5px 0;font-size: 16px;}.calculator button {background-color: #4CAF50;color: white;border: none;cursor: pointer;}.calculator button:hover {background-color: #45a049;}</style>
</head>
<body><div class="calculator"><h2>Simple Calculator</h2><input type="number" id="num1" placeholder="Enter first number" required><input type="number" id="num2" placeholder="Enter second number" required><button onclick="calculate()">Calculate</button><h3 id="result"></h3></div><script>function calculate() {// 获取输入的值var num1 = parseFloat(document.getElementById('num1').value);var num2 = parseFloat(document.getElementById('num2').value);// 判断输入是否合法if (isNaN(num1) || isNaN(num2)) {document.getElementById('result').innerText = "Please enter valid numbers.";} else {var sum = num1 + num2;document.getElementById('result').innerText = "Result: " + sum;}}</script></body>
</html>

咒语⬇️

# 这里是执行Dockerfile中的命令,生成叫js的镜像
docker build -t js .# 这里是查看所有的镜像,如果你只有一个,那就是js
docker images
#这个就是查看的结果⬇️
[ec2-user@ip-666-666-666-666 dockerfile]$ docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
js            latest    503e3aff6e48   9 seconds ago   192MB
#这个就是查看的结果⬆️# 这里是让镜像创造一个容器,容器的名字叫做jsq,用js镜像创作
docker run -d -p 8080:80 --name jsq js# 这里是查看容器
docker ps -a
#这个就是查看的结果⬇️
[ec2-user@ip-666-666-666-666 dockerfile]$ docker ps -a
CONTAINER ID   IMAGE         COMMAND                  CREATED          STATUS                        PORTS                                   NAMES
b28ba2d5575c   js            "/docker-entrypoint.…"   5 seconds ago    Up 4 seconds                  0.0.0.0:8080->80/tcp, :::8080->80/tcp   jsq
#这个就是查看的结果⬆️

七、咒语翻译器

我忘记和你讲了,咒语需要被专人(docker)翻译才能有效,所以你需要的翻译器(docker)

# 施法前摇
sudo yum update -y# 安装翻译器
sudo yum install -y docker# 翻译器开机
sudo systemctl start docker# 翻译器自动开机
sudo systemctl enable docker# 检查翻译器版本
docker --version# 测试翻译器
sudo docker run hello-world

八、放屁

上面很多都是胡说,根本没有专业的概念讲解,因为只是希望小白能初步理解。大佬就当我放屁就好了。

九、解决问题

东西一般都不是凭空出现的,一般都是为了解决一个问题。docker就是为了解决不统一的问题,比如说,老师让大家做个能算数的高达机甲战士出来,狗蛋和小王都有自己的想法,做的不一样,其他人做的也不一样。所以老师就给了个镜像,大家直接念咒语,根据镜像作出的高达机甲都是一个模子里面刻出来的,所以长得都一样,功能也都一样,所以就完成了统一

到了我们现实生活中,程序员A写的代码,在自己电脑里面运行正常,到测试人员B那里报错,查问题就很麻烦很费时间。所以,如果将代码做成一个镜像,里面包含了所有必须的特异功能,需要运行,就用镜像做出一个容器,直接运行容器

因为是从一个模子(镜像)刻出来的容器,所以完全一样,就不会出现换个地方(环境、电脑)报错的问题了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/467953.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

gitlab无法创建合并请求是所有分支都不显示

点击Merge Requests ------> New merge request 创建新的合并请求时&#xff0c;在Source branch和Target branch中一个分支都不显示 排查思路&#xff1a; 1.怀疑是权限问题。 发现只有我的一个账号出现&#xff0c;检查了账号的权限&#xff0c;尝试了master、develop角色…

macOS15.1及以上系统bug:开发者证书无法打开,钥匙串访问无法打开一直出现图标后立马闪退

团队紧跟苹果最新系统发现bug:今日设备信息如下,希望能带给遇到这个问题的开发者一点帮助。 错误图如下: 点击证书文件后,先出现钥匙串访问图标,后立马闪退消失 中间试过很多方法,都是一样的表现,最后好在解决了,看网上也没有相关的帖子,这里直接写解决办法和导致原因…

python实战案例——爬取A站视频,m3u8格式视频抓取(内含完整代码!)

1、任务目标 目标网站&#xff1a;A站视频&#xff08;https://www.acfun.cn/v/ac40795151&#xff09; 要求&#xff1a;抓取该网址下的视频&#xff0c;将其存入本地&#xff0c;视频如下&#xff1a; 2、网页分析 进入目标网站&#xff0c;打开开发者模式&#xff0c;我们发…

【基于轻量型架构的WEB开发】课程 12.4 页面跳转 Java EE企业级应用开发教程 Spring+SpringMVC+MyBatis

12.4 页面跳转 12.4.1 返回值为void类型的页面跳转 返回值为void类型的页面跳转到默认页面 当Spring MVC方法的返回值为void类型&#xff0c;方法执行后会跳转到默认的页面。默认页面的路径由方法映射路径和视图解析器中的前缀、后缀拼接成&#xff0c;拼接格式为“前缀方法…

濮良贵《机械设计》第十版课后习题答案全解PDF电子版

《机械设计》(第十版)是“十二五”普通高等教育本科国家级规划教材&#xff0c; 是在《机械设计》(第九版)的基础上修订而成的。本次修订主要做了以下几项工作&#xff1a; 1. 内容的适当更新——自本书第九版出版以来&#xff0c; 机械工程及相关领域的新理论、新技术和新标准…

【Unity基础】Unity中如何导入字体?

在Unity中&#xff0c;不能像其他软件一样直接使用字体文件&#xff0c;需要通过FontAssetCreator将其转换成Texture的Asset文件&#xff0c;然后才能使用。 本文介绍了使用FontAssetCreator导入字体的过程&#xff0c;并对其参数设置进行了说明。 Font Asset Creator 是 Uni…

2024年11月8日上海帆软用户大会

2024年11月8日上海帆软用户大会 2024年11月8日&#xff0c;上海成功举办了帆软用户大会&#xff0c;主题为“数字聚力&#xff0c;绽放新机”。大会汇聚了众多行业专家和企业代表&#xff0c;共同探讨数字化转型和商业智能领域的最新趋势和实践。 大会亮点&#xff1a; 专家…

注意力机制的目的:理解语义;编码器嵌入高纬空间计算;注意力得分“得到S*V”;解码器掩码和交叉注意力层用于训练;最终的编码器和输出实现大模型

目录 注意力机制的目的:理解语义中的它是小白兔 词编码器嵌入高纬空间 计算注意力得分“得到S*V” 权重QKV:连接权重 训练阶段使用解码器:翻译后的语句 解码器掩码和交叉注意力层用于训练 最终的编码器和输出实现大模型 Transformer模型中,QKV QKV的作用 举例说明…

纯前端实现在线预览excel文件(插件: LuckyExcel、Luckysheet)

概述 在实际开发中&#xff0c;遇到需要在线预览各种文件的需求&#xff0c;最近遇到在线预览excel文件的需求&#xff0c;在此记录一下&#xff01;本文主要功能实现&#xff0c;用于插件 LuckyExcel &#xff0c;Luckysheet&#xff01;废话不多说&#xff0c;上代码&#xf…

WPF自定义翻页控件

XAML文件如下&#xff1a; <UserControlx:Class"CTMVVMDemo.View.UserControls.DataPager"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://s…

Linux中.NET读取excel组件,不会出现The type initializer for ‘Gdip‘ threw an exception异常

组件&#xff0c;可通过nuget安装&#xff0c;直接搜名字&#xff1a; ExcelDataReader using ConsoleAppReadFileData.Model; using ExcelDataReader; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Task…

qt QColorDialog详解

1、概述 QColorDialog是Qt框架中的一个对话框类&#xff0c;专门用于让用户选择颜色。它提供了一个标准的颜色选择界面&#xff0c;其中包括基本的颜色选择器&#xff08;如调色板和颜色轮&#xff09;、自定义颜色输入区域以及预定义颜色列表。QColorDialog支持RGB、HSV和十六…

使用Python实现音频降噪

在音频处理领域&#xff0c;背景噪声是一个常见的问题。为了提高音频的质量&#xff0c;我们需要对音频进行降噪处理。本文将介绍如何使用 Python 实现音频降噪。 依赖库安装 在开始之前&#xff0c;我们需要安装以下依赖库&#xff1a; pydub&#xff1a;用于音频文件的读取…

【WRF模拟】全过程总结:WPS预处理及WRF运行

【WRF模拟】全过程总结:WPS预处理及WRF运行 1 数据准备1.1 嵌套域设置(Customize domain)-基于QGis中gis4wrf插件1.2 静态地理数据1.2.1 叶面积指数LAI和植被覆盖度Fpar(月尺度)1.2.2 地面反照率(月尺度)1.2.3 土地利用类型+不透水面积1.2.4 数据处理:geotiff→tiff(W…

【react】Redux基础用法

1. Redux基础用法 Redux 是一个用于 JavaScript 应用的状态管理库&#xff0c;它不依赖于任何 UI库&#xff0c;但常用于与 React 框架配合使用。它提供了一种集中式的状态管理方式&#xff0c;将应用的所有状态保存在一个单一的全局 Store&#xff08;存储&#xff09;中&…

DevCheck Pro手机硬件检测工具v5.33

前言 DevCheck Pro是一款手机硬件和操作系统信息检测查看工具&#xff0c;该软件的功能非常强大&#xff0c;为用户提供了系统、硬件、应用程序、相机、网络、电池等一系列信息查看功能 安装环境 [名称]&#xff1a;DevCheckPro [版本]&#xff1a;5.33 [大小]&a…

Docker的轻量级可视化工具Portainer

docker目录 1 Portainer官方链接2 是什么&#xff1f;3 下载安装4 跑通一次5 后记 1 Portainer官方链接 这里给出portainer的官方链接&#xff1a;https://www.portainer.io/ portainer安装的官方链接&#xff1a;https://docs.portainer.io/start/install-ce/server/docker/l…

IoTDB 与 HBase 对比详解:架构、功能与性能

五大方向&#xff0c;洞悉 IoTDB 与 HBase 的详尽对比&#xff01; 在物联网&#xff08;IoT&#xff09;领域&#xff0c;数据的采集、存储和分析是确保系统高效运行和决策准确的重要环节。随着物联网设备数量的增加和数据量的爆炸式增长&#xff0c;开发者和决策者们需要选择…

【c++丨STL】vector模拟实现

&#x1f31f;&#x1f31f;作者主页&#xff1a;ephemerals__ &#x1f31f;&#x1f31f;所属专栏&#xff1a;C、STL 目录 前言 一、vector底层刨析 二、模拟实现 1. 属性、迭代器以及函数声明 2. 功能实现 交换两个容器的内容 构造函数 拷贝构造 赋值重载 析构…

C++中类的默认成员函数

默认成员函数 1.构造函数2.析构函数3.拷贝构造函数4.赋值运算符重载4.1运算符重载4.2赋值运算符重载 #mermaid-svg-oipiwg9stvONvYK0 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-oipiwg9stvONvYK0 .error-icon{f…