001.docker30分钟速通版
-
docker简介
- docker就是一个用于构建(build),运行(run),传送(share)应用程序的平台
- 做一个不恰当的类比,就是外卖平台,如果你自己做华莱士不一定好吃,但是如果华莱士做好了汉堡包(构建)呢?让后外卖(分享),最后你吃了(运行),拉肚子了(和在华莱士的效果一模一样)。
- 有了docker我们就可以随时随地的拉肚子了,也可以随时随地的直接运行程序而不用担心环境。
-
docker的原理 -
为什么要用docker?
-
假如你要搞一个网站,前端要vue,后端springboot,数据库是mysql
-
最少都要node,npm依赖,mysql,nginx,java,vue相关
-
-
一套下来,一天就没有了,而且每一次不同硬件上完成,你就当在搞一遍。如果这个时候,有外卖就好了,饿了一点就可以吃了。docker就是送外卖的平台。
-
-
docker与虚拟机的区别
- 虚拟机(比如vm)是虚拟了一个操作系统
- 容器(汉堡包):只包含了要用到的环境,不涉及操作系统,或者说虚拟机是让厨师去你家做饭,容器是做好了打包,谁更花钱显而易见,当然你有钱就当我没说。
- 容器和docker:因为“外卖”太出名了,所以更有吃外卖(汉堡包),做外卖(美团),但是我们不能说美团是汉堡包。同理,虽然docker是容器平台,而且还很出名,但是docker不是容器,docker的容器的搬运工,当然也生产容器。就像美团一样,有生产汉堡包的店铺,也有美团骑手。
-
基本原理与概念
- 镜像:当你面对镜子的时候,你不可能拿到镜子里的东西,所以镜像对于大部分人而言是只读的模版,但是你可以指定镜子里有什么。
- 容器:当你想自己拍自己,就可以通过镜像,因为镜像是只读的,所以一旦保证正确那么后续大概率没错。这个时候你拍的相片就是你自己的信息载体,我们将他叫做容器。无论你相亲多少人,对象一看就知道你长什么样。千人一面,相片(容器)提供了一个独立的对所有人有效的(可移植)的载体(环境)。
- 仓库:好了现在你太丑了,必须要改变穿衣风格,你打开xhs发现,大家发了很多自拍,你知道,这是容器,那不是你要的。突然有人分享了他的穿衣风格,于是你根据他的穿衣风格对镜,发现“wow”,他的穿衣风格就是你想要的镜像。而可以分享镜像的地方就是仓库。
- 好了,不懂没关系。你用过面向对象的编程语言吗?比如说py,java?
- 镜像=类,容器=实例,仓库=别人或者自己写好的类分享给别人的网站(说不定就是csdn)
- 好吧,我刚入门,我什么都不知道,能不能形象一些?
- 镜像=食谱,容器=根据食谱做好的饭,仓库=存放你我食谱且可以相互使用的共享阅读点。
-
docker的安装
- 网站:docker.com(目前无法使用,哈哈哈,会好的)
- 下载好安装包
- 双击安装就好了,安装完成后请启动
- 如果是window用户,在搜索框搜索“hyper-v”,其它这个程序即可
- 这个时候你就可以在cmd中使用docker了,先用docker version看看系统信息
- 如果你只看到了client没看到server,恭喜你,你没有启动docker,建议启动
- 小小的原理
-
容器化和Dockerfile
- 容器化
- 创建一个dockerfile:告诉docker创建镜像的步骤与要求。(我要吃龙虾,小龙虾的步骤与需要的材料)
- 使用dockerfile创建镜像:通过dockerfile的步骤与要求,完成对镜像的创建。(根据小龙虾的步骤和材料,编写合适的菜单)
- 使用镜像创建于运行容器。(根据菜单完成小龙虾,做完尝尝)
- Dockerfile:文本文件,包含了多条指令,告诉docker,docker根据文件构建镜像。
- 容器化
-
炒炒菜
- 在桌面创建一个文件夹“hello docker”(任意位置都可以)
- 所用任意一款喜欢的编辑器打开文件夹(不要说记事本)
- 创建一个index.js文件并写入“console.log("js控制台输出")”
- 现在要直接执行js文件,要操作系统,node,以及一些依赖环境,如果电脑上没有node,那么抱歉,用不了。
- 在同一级目录创建“Dockerfile”,建议D大写,没有后缀名
- 编写Dockerfile
- 查看镜像,通过docker images 【ls】
- 运行镜像:docker run 镜像名
- 在线docker:自行研究,我不会。Play with Docker (play-with-docker.com)
https://labs.play-with-docker.com/ - docker pull 仓库/镜像名:下载镜像。
- 在桌面创建一个文件夹“hello docker”(任意位置都可以)
-
docker desktop:一款docker的图形化界面

- 容器有生命周期不可能持久化就像内存一样,要持久化就要映射的物理设备上虚化出来的逻辑卷上。
-
docker compose:
-
这是一个配置文件一般名字叫docker-compose.yml。里面将用到的环境放入当做统一控制组合,通过一条命令完成对整个环境的启动关闭配置。
-
相关文章:
001.docker30分钟速通版
docker简介 docker就是一个用于构建(build),运行(run),传送(share)应用程序的平台做一个不恰当的类比,就是外卖平台,如果你自己做华莱士不一定好吃࿰…...
Kafka 在 Linux 下的集群配置和安装
Kafka 在 Linux 下的集群配置和安装 Apache Kafka 是一个流行的分布式流处理平台,广泛用于实时数据管道和流处理应用。本文将详细讲解如何在 Linux 环境中配置和安装 Kafka 集群,并包括通过 Docker 安装和配置 Kafka 的步骤。每个步骤都将提供详细的解释…...
Python--操作列表
1.for循环 1.1 for循环的基本语法 for variable in iterable: # 执行循环体 # 这里可以是任何有效的Python代码块这里的variable是一个变量名,用于在每次循环迭代时临时存储iterable中的下一个元素。 iterable是一个可迭代对象,比如列表(…...
JMeter(需要补充请在留言区发给我,谢谢)
一、学习工具 1、CinfigElement(HTTP Request Defaults、HTTP Header Manager、HTTP Authorization、CSV Data Set Config、User Defined Variables、JDBC Connection Configuration、HTTP Cookie Manager、Random Variable) 二、协议 1、HTTP协议(消息体数据&am…...
线程池的执行流程和配置参数总结
一、线程池的执行流程总结 提交线程任务;如果线程池中存在空闲线程,则分配一个空闲线程给任务,执行线程任务;线程池中不存在空闲线程,则线程池会判断当前线程数是否超过核心线程数(corePoolSize)…...
node-red-L3-重启指定端口的 node-red
重启指定端口 目的步骤查找正在运行的Node.js服务的进程ID(PID):停止Node.js服务:启动Node.js服务: 目的 重启指定端口的 node-red 步骤 在Linux系统中,如果你想要重启一个正在运行的Node.js服务&#x…...
(done) 使用泰勒展开证明欧拉公式
问问神奇的 GPT,how to prove euler formula? 一个答案如下:...
红队apt--邮件钓鱼
前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 免责声明: 本文仅供了解攻击方手法使用,切勿用于非授权情节 初步了解邮件基础 用途方面 这个我们应该比较熟悉,最常用于验证码接收,也有一些厂商会用这个来打广告,…...
十七,Spring Boot 整合 MyBatis 的详细步骤(两种方式)
十七,Spring Boot 整合 MyBatis 的详细步骤(两种方式) 文章目录 十七,Spring Boot 整合 MyBatis 的详细步骤(两种方式)1. Spring Boot 配置 MyBatis 的详细步骤2. 最后: MyBatis 的官方文档:https://mybatis.p2hp.com/ 关于 MyBa…...
DNS协议解析
DNS协议解析 什么是DNS协议 IP地址:一长串唯一标识网络上的计算机的数字 域名:一串由点分割的字符串名字 网址包含了域名 DNS:域名解析协议 IP>域名 --反向解析 域名>IP --正向解析 域名 由ICANN管理,有级别…...
每日一题——第一百零八题
题目: 写几个函数, ①输入10个职工的姓名和职工号 ②按照职工号由小到大排列, 姓名顺序也随之调整 ③要求输入一个职工号, 用折半查找找出该职工的姓名 #include<stdio.h> #include<string.h> #define MAX_EMPOLYEES…...
使用Python免费将pdf转为docx
刚刚想将pdf转换为docx文档时,居然要收费 还好我学过编程,这不得露两手 将pdf 转换为 docx 文档 的操作步骤 我这里使用的是Python语言 (1)在终端上安装 pdf2docx 是一个 Python 库,它可以将 PDF 文件转换为 Word (…...
树莓派4B+UBUNTU20.04+静态ip+ssh配置
树莓派4B+UBUNTU20.04+静态ip+ssh配置 1.烧录Ubuntu镜像1.1选择pi 4b1.2选择ubuntu server (服务器版,无桌面)20.041.3选择sd卡1.4 点击右下角 NEXT ,编辑设置,输入密码,wifi选CN, 开启ssh1.5 烧录,依次点击“是”,等待完成2 烧录完成后装入树莓派,上电,等待系统完成配…...
C#实现指南:将文件夹与exe合并为一个exe
在软件开发过程中,有时需要将多个文件(如资源文件、配置文件等)与可执行文件(exe)打包在一起,以便于分发和部署。在C#中,我们可以利用ILMerge或Costura.Fody等工具来实现这一目标。本文将介绍如…...
linux信号 | 学习信号三步走 | 全解析信号的产生方式
前言:本节内容是信号, 主要讲解的是信号的产生。信号的产生是我们学习信号的第二个阶段。 我们已经学习过第一个阶段——信号的概念与预备知识(没有学过的友友可以查看我的前一篇文章)。 以及我们还没有学习信号的第三个阶段——信…...
C++ 刷题 使用到的一些有用的容器和函数
优先队列 c优先队列priority_queue(自定义比较函数)_c优先队列自定义比较-CSDN博客 373. 查找和最小的 K 对数字 - 力扣(LeetCode) 官方题解: class Solution { public:vector<vector<int>> kSmallestP…...
【Kubernetes】常见面试题汇总(三十四)
目录 86. K8s 每个 Pod 中有一个特殊的 Pause 容器能否去除,简述原因。 特别说明: 题目 1-68 属于【Kubernetes】的常规概念题,即 “ 汇总(一)~(二十二)” 。 题目 69-113 属于【Kuberne…...
C++标准库双向链表 list 中的insert函数实现。
CPrimer中文版(第五版): //运行时错误:迭代器表示要拷贝的范围,不能指向与目的位置相同的容器 slist.insert(slist.begin(),slist.begin(),slist.end()); 如果我们传递给insert一对迭代器,它们不能…...
华为机考练习(golang)
输入 第一行输入一个正整数N,表示整数个数。(0<N<100000) 第二行输入N个整数,整数的取值范围为[-100,100]。 第三行输入一个正整数M,M代表窗口的大小,M<100000,且M<N。 输出 窗口…...
51单片机快速入门之按键应用拓展
51单片机快速入门之按键应用拓展 LED的点动控制: 循环检测,当key 为0 时 led 亮 反之为熄灭 while(1){ if(key!1) { led0; }else { led1; } } LED的锁定控制: 当按钮按下,led取反值 while(1) { if(key!1) { led!led; } } LED的4路抢答控制: bz默认为0 !bz 取反值,循环启动…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...
python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...
在 Spring Boot 中使用 JSP
jsp? 好多年没用了。重新整一下 还费了点时间,记录一下。 项目结构: pom: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://ww…...











