docker 学习-- 01 基础知识

docker 学习-- 01 基础知识


文章目录

  • docker 学习-- 01 基础知识
  • 1.前言
    • 1.1 docker 是什么
    • 1.2 docker优点
      • 1.2.1 统一开发和生产环境:
      • 1.2.2 高性能:
      • 1.2.3 更轻松的维护和拓展:
      • 1.2.4 更轻松的迁移:
    • 1.3 docker缺点
      • 1.3.1 运行环境受限
      • 1.3.2 文件管理和网络端口管理
      • 1.4总结
  • 2、docker 专业术语
    • 2.1Docker客户端。
    • 2.2 Docker守护进程(Daemon)。
    • 2.3 Docker镜像(Image)。
    • 2.4 Docker容器(Container)。
    • 2.5 镜像仓库(Repository)。


1.前言

1.docker 是什么 2.docker 可以做什么 3.如何用docker

1.1 docker 是什么

白话:
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的
Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口
自己理解:解决环境不统一的问题

1.2 docker优点

1.2.1 统一开发和生产环境:

让自己的环境和小伙伴们的版本都变成一样的 包括线上和自己本地,减少因为环境引起的报错;

1.2.2 高性能:

虚拟机的粒度是虚拟出的机 ,而Docker的粒度则是被限制的应用 ,相比较而言 Docker 的内存占用更少,更加轻量级,性能也更优。
而秒级的启动,也可以让我们启动电脑时候,开发环境的运行是无感知的。


1.2.3 更轻松的维护和拓展:

场景1 当一个项目需要很多人如开发或者有一个人修改了自己本地的一些环境扩展,导致其他人也无法正常使用,使用docker的composer 扩展可以实现类似于 git 一样的功能

1.2.4 更轻松的迁移:

场景1:当我们想给其他人提交一个展示 如果对方也使用docker 就可以轻松的运行起一套环境
场景2:可以开辟起一个新的环境 自己去测试东西

1.3 docker缺点

1.3.1 运行环境受限

这也就意味着 有些系统是无法运行docker 或者运行起来会有一些问题
(记录时间 23-8-25仅供参考)
1.Windows
Windows 上运行 Docker 最新的版本需要 Windows 10 或 Windows Server 2016 及以上版本,并且需要启用 Hyper-V。同时还需要安装 Docker Desktop for Windows,该软件提供了图形化的容器管理界面,方便用户进行容器的创建、管理和运行。Windows 系统下的容器可以运行 Windows Server Core 或 Nano Server 两种系统镜像,其中 Windows Server Core 镜像大小为 2GB 左右,适合于需要支持 .NET Framework 应用或者需要完整 .NET 支持的应用,而 Nano Server 镜像大小仅为几百 MB,适合于需要快速启动、较小体积和低安全风险的应用。
2.Linux (非常建议在Linux下使用进行docker 操作)
Linux 是 Docker 最广泛使用的操作系统之一。Docker 支持多种 Linux 发行版,如 Debian、CentOS、Ubuntu 等。运行 Linux 容器时,Docker 镜像是从 Docker Hub 获取的,用户可以搜索相关镜像进行下载。Linux 系统镜像大小比 Windows 系统镜像要小得多,同时 Docker 还提供了 Alpine Linux 镜像,体积更小,适合于启动快速、网络资源有限的环境下使用。用户可以通过命令行或者 Dockerfile,使用 Docker 镜像创建和管理容器。
3.macOS(这个本人也没有实际运行仅供参考)
在 macOS 上运行 Docker 需要先安装 Docker Desktop for Mac,该软件提供了可视化的容器管理工具。 macOS 下的 Docker 容器只能部署 Linux 环境的应用,无法直接部署 Windows 应用。用户可以在 Docker Hub 上搜索所需的 Linux 系统镜像,然后通过 Docker Desktop for Mac 工具来创建和管理容器。

1.3.2 文件管理和网络端口管理

1.docker 文件 都是运行在虚拟盘里,如果系统崩溃或者误操作清理,也会造成问题文件丢失
一般的解决办法 都是通过挂载到物理盘来存文件 或者管理到git 或者svn 上
2. 如果在本地需要映射端口出来
场景1 起一套 Php7+Nginx2.0+ Mysql 5.7+ Redis 6 环境 需要 开放 80 3306 6937 等接口
这个时候又起来一套 go 的环境 或者 又启用一套其他 项目 也需要 开放 80 3306 6937 等接口
这个时候就需要去映射 比如本地 5555::80 6666::3306 7777::6937 需要自己去配置这些冲突

1.4总结

docker 还是非常值得学习的
1.docker 处理环境非常有优势
2.学习新的东西有时间成本 以及遇到问题解决问题的成本 这是没办法避免的

2、docker 专业术语

2.1Docker客户端。

通常指 Docker 提供的命令行工具,是 Docker 最基本的用户接口。用户通过 Docker 客户端提交Docker
指令,Docker 守护进程接收并执行该指令。Docker 也有图形化的客户端工具。

2.2 Docker守护进程(Daemon)。

在 Docker 宿主机上运行 Docker,实际上运行的是 Docker 守护进程。用户并不直接和 Docker 守护进程交互,而是通过
Docker 客户端的命令来和它进行交互。

2.3 Docker镜像(Image)。

一个Docker 镜像是一个只读的模板。例如,一个 Docker 镜像可以包含一个 CentOS
的操作系统、一个MySQL的数据库和一个Tomcat的应用服务器。Docker镜像被用来创建Docker容器。Docker提供了一个简单的方式来构建一个新的镜像或更新一个已经存在的镜像。用户也可以从镜像仓库下载其他人已经创建好的
Docker 镜像。

2.4 Docker容器(Container)。

通过 Docker 镜像可以创建 Docker 容器。Docker 存任何东西,而的容器可以保这些东西是运行一个应用所必需的。可以把
Docker 容器看成是一个虚拟机。Docker
容器可以被运行、开启、停止移动和删除。每一个容器都是一个分离的、安全的应用平台。Docker 容器是 Docker 的运行组件。

2.5 镜像仓库(Repository)。

Docker 的镜像仓库用于保存 Docker 镜像,它可以是公共的存储地方,也可以是私有的存储地方.。 公共的镜像仓库由 Docker
Hub 提供,它提供了一个用户可以使用的已有镜像的集合。这些集合中的镜像可以是你自己创建的,也可以是别人创建的。
私有的镜像仓库需要自己在私有环境中搭建,例如在企业内网中自行搭建。Harbor 是一个典型的私有的镜像仓库。

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

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

相关文章

item_sku-获取sku详细信息

一、接口参数说明: item_sku-获取sku详细信息,点击更多API调试,请移步注册API账号点击获取测试key和secret 公共参数 请求地址: https://api-gw.onebound.cn/taobao/item_sku 名称类型必须描述keyString是调用key(点击获取测试…

安全中间件的设计思路和简单实践

rasp 的侵入式特性和拦截特性导致开发和运维普通不太愿意配合,当生产环境出现问题时往往第一时间先把责任推给 rasp,逐渐的安全部门普遍只能把 rasp 设置为告警模式,而且越是大的集群拦截开的就越少,所以字节的 elkeid 和某外卖大…

P13-CNN学习1.3-ResNet(神之一手~)

论文地址:CVPR 2016 Open Access Repository https://arxiv.org/pdf/1512.03385.pdf Abstract 翻译 深层的神经网络越来越难以训练。我们提供了一个残差学习框架用来训练那些非常深的神经网络。我们重新定义了网络的学习方式,让网络可以直接学习输入信息与输出信息…

Python-OpenCV中的图像处理-图像直方图

Python-OpenCV中的图像处理-图像直方图 图像直方图统计直方图绘制直方图Matplotlib绘制灰度直方图Matplotlib绘制RGB直方图 使用掩膜统计直方图直方图均衡化Numpy图像直方图均衡化OpenCV中的直方图均衡化CLAHE 有限对比适应性直方图均衡化 2D直方图OpenCV中的2D直方图Numpy中2D…

代码随想录算法训练营20期|第七天|哈希表part02|454.四数相加II ● 383. 赎金信 ● 15. 三数之和 ● 18. 四数之和 ● 总结

454.四数相加II 比较巧思的解法,先把nums1 和nums2的数两两相加,并存储sum和次数 再在nums3和nums4里找对应和sum和为0的数值i,j Time: N^2 Space:N^2, 最坏情况下A和B的值各不相同,相加产生的数字个数为 n^2 class Solution {public int fo…

Spring AOP实践:如何通过aop记录日志?

目录 一、依赖 二、自定义注解 三、切面 一、依赖 以SpringBoot工程为例&#xff0c;导入aop的依赖。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId> </dependency> 二…

为什么要自动化Web测试?

Web自动化是更快地实现所需结果的较佳方式。自动化测试在市场上引起了巨大的轰动。此软件测试过程可以让您使用正确的自动化测试工具和技术集自动执行测试过程。我们执行它是为了检查软件应用程序是否具有完全按照我们希望它执行的方式执行的勇气。 比以往更快地获得反馈 自动化…

基于Promise.resolve实现Koa请求队列中间件

本文作者为360奇舞团前端工程师 前言 最近在做一个 AIGC 项目&#xff0c;后端基于 Koa2 实现。其中有一个需求就是调用兄弟业务线服务端 AIGC 能力生成图片。但由于目前兄弟业务线的 AIGC 项目也是处于测试阶段&#xff0c;能够提供的服务器资源有限&#xff0c;当并发请求资源…

kafka和rabbitmq之间的区别以及适用场景

Kafka 和 RabbitMQ 都是流行的消息传递系统&#xff0c;用于实现分布式系统中的消息传递、事件处理和数据流。它们在设计和适用场景上有一些不同&#xff0c;下面详细介绍它们之间的区别和适用场景。 Kafka 特点和优势&#xff1a; 高吞吐量&#xff1a; Kafka 的设计目标是实…

【Java】数据交换 Json 和 异步请求 Ajax

&#x1f384;欢迎来到边境矢梦的csdn博文&#xff0c;本文主要讲解Java 中 数据交换和异步请求 Json&Ajax 的相关知识&#x1f384; &#x1f308;我是边境矢梦&#xff0c;一个正在为秋招和算法竞赛做准备的学生&#x1f308; &#x1f386;喜欢的朋友可以关注一下&#…

go mod 添加私有库GOPRIVATE

私有地址 形式仓库域名/组织名形式仓库域名形式*仓库域名 示例私有地址&#xff1a; gitee.com/takujo_admin 或者igitlab.com 多个私有地址,分割&#xff0c;示例&#xff1a; gitee.com,igitlab.com 修改env go env -w GOPRIVATE"私有地址" go env -w …

conda创建虚拟环境

创建虚拟环境是在计算机上设置一个独立的空间&#xff0c;用于安装和运行特定版本的软件和依赖项&#xff0c;以避免与系统其他部分的冲突。 创建虚拟环境&#xff1a; conda create --name myenv python3.8 这将创建一个名为myenv的虚拟环境&#xff0c;并安装Python 3.8版本。…

pwm接喇叭搞整点报时[keyestudio的8002模块]

虽然现在查看时间很方便&#xff0c;但是其实好像我的时间观念却越来越差。于是决定搞一个整点报时&#xff0c;时常提醒自己时光飞逝&#xff0c;不要老是瞎墨迹。 这篇主要讲一下拼装方式和配置&#xff0c;就差不多了。不涉及什么代码。3针的元器件&#xff0c;去掉正负接线…

day3 STM32 GPIO口介绍

GPIO接口简介 通用输入输出接口GPIO是嵌入式系统、单片机开发过程最常用的接口&#xff0c;用户可以通过编程灵活的对接口进行控制&#xff0c;实现对电路板上LED、数码管、按键等常用设备控制驱动&#xff0c;也可以作为串口的数据收发管脚&#xff0c;或AD的接口等复用功能使…

网络安全--iptables(待更新,累了)

总结&#xff1a; iptables 的关键概念和功能&#xff1a; 规则&#xff08;Rules&#xff09;&#xff1a; iptables 使用规则来定义特定的操作&#xff0c;例如允许或拒绝特定类型的网络流量。每条规则都由条件和操作组成。条件可以是源 IP 地址、目标 IP 地址、端口号等&a…

thinkphp:对数据库减少增加某个字段的值(dec、inc的用法)

例子&#xff1a;当字段po_num的值等于数组list_info中的po_num的值时修改数据库表po_rcv_receipt_line中某些信息&#xff1a; 1、数据库delivery_quantity字段的值 数据库中delivery_quantity的值变量$list_info[write_quantity] ->inc(delivery_quantity, $list_info[…

【设计模式——学习笔记】23种设计模式——状态模式State(原理讲解+应用场景介绍+案例介绍+Java代码实现)

文章目录 案例引入介绍基本介绍登场角色应用场景 案例实现案例一类图实现 案例二&#xff1a;借贷平台源码剖析传统方式实现分析状态修改流程类图实现 案例三&#xff1a;金库警报系统系统的运行逻辑伪代码传统实现方式使用状态模式 类图实现分析问题问题一问题二 总结文章说明…

国内芯片厂商创新突破,助力国产替代持续加速

近日&#xff0c;中商产业研究院发布最新研究报告显示&#xff0c;今年1~5月份中国进口集成电路为1865亿件&#xff0c;同比下降19.6%&#xff0c;同比去年5个月累计少进口了455亿颗&#xff0c;平均每天少进口3亿颗。与此同时&#xff0c;英特尔、AMD、美光、三星、SK海力士等…

OSI七层模型和TCP/IP四层模型

OSI七层模型和TCP/IP四层模型 七层模型(OSI) OSI七层模型&#xff08;Open Systems Interconnection Reference Model&#xff09;是一个用于计算机网络体系结构的标准化框架&#xff0c;旨在定义网络通信中不同层次的功能和协议。 各个层次具体如下&#xff1a; 物理层&am…

C语言 冒泡排序

目录 一、原理 二、代码演示 三、代码优化 一、原理 假设&#xff1a; int arr[] { 9,8,7,6,5,4,3,2,1,0 }; 将 arr 内的元素进行升序排列&#xff0c;得到一个新的数组 int arr[] { 0&#xff0c;1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c;5&#xff0c;…