001.docker30分钟速通版

devtools/2024/9/23 17:36:04/
  • docker简介

    1. docker就是一个用于构建(build),运行(run),传送(share)应用程序的平台
    2. 做一个不恰当的类比,就是外卖平台,如果你自己做华莱士不一定好吃,但是如果华莱士做好了汉堡包(构建)呢?让后外卖(分享),最后你吃了(运行),拉肚子了(和在华莱士的效果一模一样)。
    3. 有了docker我们就可以随时随地的拉肚子了,也可以随时随地的直接运行程序而不用担心环境。
    4. docker的原理
    5. 为什么要用docker

      1. 假如你要搞一个网站,前端要vue,后端springboot,数据库是mysql

      2. 最少都要node,npm依赖,mysql,nginx,java,vue相关

      3. 一套下来,一天就没有了,而且每一次不同硬件上完成,你就当在搞一遍。如果这个时候,有外卖就好了,饿了一点就可以吃了。docker就是送外卖的平台。

  • docker与虚拟机的区别

    1. 虚拟机(比如vm)是虚拟了一个操作系统
    2. 容器(汉堡包):只包含了要用到的环境,不涉及操作系统,或者说虚拟机是让厨师去你家做饭,容器是做好了打包,谁更花钱显而易见,当然你有钱就当我没说。
    3. 容器和docker:因为“外卖”太出名了,所以更有吃外卖(汉堡包),做外卖(美团),但是我们不能说美团是汉堡包。同理,虽然docker是容器平台,而且还很出名,但是docker不是容器,docker的容器的搬运工,当然也生产容器。就像美团一样,有生产汉堡包的店铺,也有美团骑手。
  • 基本原理与概念

    1. 镜像:当你面对镜子的时候,你不可能拿到镜子里的东西,所以镜像对于大部分人而言是只读的模版,但是你可以指定镜子里有什么。
    2. 容器:当你想自己拍自己,就可以通过镜像,因为镜像是只读的,所以一旦保证正确那么后续大概率没错。这个时候你拍的相片就是你自己的信息载体,我们将他叫做容器。无论你相亲多少人,对象一看就知道你长什么样。千人一面,相片(容器)提供了一个独立的对所有人有效的(可移植)的载体(环境)。
    3. 仓库:好了现在你太丑了,必须要改变穿衣风格,你打开xhs发现,大家发了很多自拍,你知道,这是容器,那不是你要的。突然有人分享了他的穿衣风格,于是你根据他的穿衣风格对镜,发现“wow”,他的穿衣风格就是你想要的镜像。而可以分享镜像的地方就是仓库。
    4. 好了,不懂没关系。你用过面向对象的编程语言吗?比如说py,java?
      1. 镜像=类,容器=实例,仓库=别人或者自己写好的类分享给别人的网站(说不定就是csdn)
    5. 好吧,我刚入门,我什么都不知道,能不能形象一些?
      1. 镜像=食谱,容器=根据食谱做好的饭,仓库=存放你我食谱且可以相互使用的共享阅读点。
  • docker的安装

    1. 网站:docker.com(目前无法使用,哈哈哈,会好的)
    2. 下载好安装包
    3. 双击安装就好了,安装完成后请启动
    4. 如果是window用户,在搜索框搜索“hyper-v”,其它这个程序即可
    5. 这个时候你就可以在cmd中使用docker了,先用docker version看看系统信息
    6. 如果你只看到了client没看到server,恭喜你,你没有启动docker,建议启动
    7. 小小的原理
  • 容器化和Dockerfile

    1. 容器化
      1. 创建一个dockerfile:告诉docker创建镜像的步骤与要求。(我要吃龙虾,小龙虾的步骤与需要的材料)
      2. 使用dockerfile创建镜像:通过dockerfile的步骤与要求,完成对镜像的创建。(根据小龙虾的步骤和材料,编写合适的菜单)
      3. 使用镜像创建于运行容器。(根据菜单完成小龙虾,做完尝尝)
    2. Dockerfile:文本文件,包含了多条指令,告诉dockerdocker根据文件构建镜像。
  • 炒炒菜

    1. 在桌面创建一个文件夹“hello docker”(任意位置都可以)
    2. 所用任意一款喜欢的编辑器打开文件夹(不要说记事本)
    3. 创建一个index.js文件并写入“console.log("js控制台输出")”
    4. 现在要直接执行js文件,要操作系统,node,以及一些依赖环境,如果电脑上没有node,那么抱歉,用不了。
    5. 在同一级目录创建“Dockerfile”,建议D大写,没有后缀名
    6. 编写Dockerfile
    7. 查看镜像,通过docker images 【ls】
    8. 运行镜像:docker run 镜像名
    9. 在线docker:自行研究,我不会。Play with Docker (play-with-docker.com)icon-default.png?t=O83Ahttps://labs.play-with-docker.com/
    10. docker pull 仓库/镜像名:下载镜像。
  • docker desktop:一款docker的图形化界面

    1. 容器有生命周期不可能持久化就像内存一样,要持久化就要映射的物理设备上虚化出来的逻辑卷上。
  • docker compose:

    1. 这是一个配置文件一般名字叫docker-compose.yml。里面将用到的环境放入当做统一控制组合,通过一条命令完成对整个环境的启动关闭配置。


http://www.ppmy.cn/devtools/116102.html

相关文章

变脸大师:基于OpenCV与Dlib的人脸换脸技术实现

目录 简介 重新简介 思路解析 1. 加载人脸检测器和特征点预测模型 2. 读取两张人脸图片 3. 获取人脸的特征点 4. 使用Delaunay三角剖分 5. 仿射变换三角形 6. 三角形变形并复制 7. 脸部轮廓掩模 8. 无缝克隆换脸 9. 缩放图像 10. 显示换脸结果 整体代码 效果展…

王守义都说的十三香,销量直至今年依旧能打——苹果13系列的SoC芯片A15和射频收发芯片高通SDR868

浅谈人工智能技术,对社会经济变革的思考 苹果iPhone 16系列已经开放购买了,小伙伴们的钱包准备好了吗?平台君打开银行卡看了一眼,觉得iPhone 13还是很香的,也还能再战几年。 想当年iPhone 13系列发布的时候,网络流传一句话-王守义都说十三香啊。具体“香”在哪里?数据说…

MySQL:事务隔离级别

SQL 标准定义了四个隔离级别: READ-UNCOMMITTED(读取未提交) :最低的隔离级别,允许读取尚未提交的数据变更,可能会导致脏读、幻读或不可重复读。READ-COMMITTED(读取已提交) :允许读取并发事务已经提交的数据&#xf…

el-table使用el-switch选择器没效果

出现问题的代码: 0表示启用&#xff0c;1表示禁用&#xff0c;发现页面根本没有效果&#xff0c;百思不得其解&#xff0c;查阅资料&#xff0c;恍然大悟。 <el-table :data"userList" stripe border style"width: 100%" height"500"><…

今日leetCode 反转字符串

344. 反转字符串 提示 编写一个函数&#xff0c;其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间&#xff0c;你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 示例 1&#xff1a; 输入&#xff1a;s …

Ubuntu 中无法直接使用 `conda` 命令,设置conda的环境变量

您好&#xff0c;您在 Ubuntu 中无法直接使用 conda 命令&#xff0c;是因为 conda 的可执行文件没有添加到您的环境变量 PATH 中。您可以通过以下方法解决&#xff1a; 方法一&#xff1a;使用 conda init 初始化 运行初始化命令&#xff1a; /home/sunyuhua/miniconda3/bin/…

QT 数据加密

一.使用环境 应该是通用的,此测试版本为如图 二.使用代码 1. 运行代码 QString data = "123abcAbc.-+";qDebug() << "加密:" << QAESEncryption::encodedText(data, "填入自己秘钥");qDebug() << "解密:" <…

数据库DML语句详解与实践

目录 一、什么是DML&#xff08;Data Manipulation Language&#xff09;&#xff1f; 二、DML常用语法 1. 插入数据——INSERT 2. 更新数据——UPDATE 3. 删除数据——DELETE 4. 查询数据——SELECT 5. 条件与限制子句 三、事务控制与DML 四、DML语句的最佳实践 五、…