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

小白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.mrgr.cn/news/68820.html

相关文章:

  • 交换机基础配置(H3C)-port、dhcp、vlan
  • Rust项目结构
  • 单片机原理及应用详解
  • PostgreSQL 页文件损坏
  • 「创新管理,驱动发展」产业园:数字化管理助力产业升级
  • [MySQL]DQL语句(二)
  • 【计网不挂科】计算机网络期末考试(综合)——【选择题&填空题&判断题&简述题】完整试卷
  • AI 大模型重塑软件开发:从代码自动生成到智能测试
  • 深度学习:bert模型
  • C#-里氏替换原则
  • 2.Python解释器
  • 抗辐照CANFD芯片工艺解析:如何保障芯片的可靠性
  • Python操作Excel
  • 1.python介绍、安装
  • _处理匿名命名空间里的变量时进入硬件中断错误
  • Scaffold-ETH 2:颠覆传统开发的区块链神器,快速构建你的去中心化应用!
  • 基于毫米波雷达和TinyML的车内检测、定位与分类
  • Excel快捷键大全
  • LeetCode 二分算法 范围内整数的最大得分
  • JavaScript 网页设计详解教程
  • Liunx:文件fd、重定向、管道
  • UE4.27打包为Html5
  • 我谈维纳(Wiener)去噪滤波器
  • ReactPress:构建高效、灵活、可扩展的开源发布平台
  • C++11新特性
  • MySQL基础(四)