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

Docker简介 MacM1安装Docker

文章目录

  • 1 Docker简介
  • 2 Docker VS 虚拟机
    • 1 Docker优势
    • 2 Docker用途
  • 3 MacM1 下载安装Docker
    • 1 配置环境变量
  • 4 配置Docker
    • 2 设置Docker资源
    • 3 设置Docker镜像
  • 参考

1 Docker简介

Docker主要解决了软件开发和运行配置的问题,但是由于其功能的强大,也被应用到服务器集群管理中

在以往的软件开发与部署的过程中,软件往往因为计算机环境的不同而导致其在不同的计算机环境上无法正常运行,原因有:

  • 版本环境不兼容
  • 依赖过时

解决方案:
既然环境不同,那我将环境一起打包不就好了。即把整个操作系统打包,这样又会导致软件安装包过大,对于一些常见的应用服务来说十分臃肿,反而阻碍了软件的传播

怎么即能很好的打包应用,又能减少软件安装包的体积?设置一个中间层,因此Docker技术就此诞生。

Docker技术用来解决软件和其依赖环境一起打包的问题

  • 将应用和 bin/libs一起打包,以最小化安装环境
  • 应用在Docker上隔离,相互独立运行,每个应用可以看作一个进程

Docker的原理:Docker直接在内核创建硬件虚拟的操作系统实例,进而在不同系统之间隔离了进程和资源

在这里插入图片描述

2 Docker VS 虚拟机

既然Docker也是创建操作系统的实例,那Docker与虚拟机技术有什么不同?

在这里插入图片描述

相比虚拟机:

  • Docker不需要主机支持虚拟化技术,使用虚拟机必须开启虚拟化技术
  • 虚拟机模拟了真实的环境,因此虚拟机内的操作系统功能更加完全,占用资源更多,并且单独占用一部分空间;而Docker只是在内核上虚拟一个Linux系统,需要的资源只需要程序能够运行即可,因此Docker镜像文件很小,一个Linux系统可能就只有100MB之内。当运行这个系统,可以发现,Docker中系统很多都是功能不全的
  • 虚拟机是完全虚拟化技术,模拟完整的低层硬件环境执行指令。Docker是系统级虚拟化,通过内核来创建操作系统来运行。其中多个容器是隔离的,但是共享操作系统内核
  • 虚拟机配置更加复杂,对于简单应用来说没有必要

1 Docker优势

除了与虚拟机比之外,Docker还具有其他的优势:

  • 将应用和依赖函数库打包后形成镜像,软件的移植方便
  • 容器相当于沙箱机制,相互隔离,运行应用更加安全

但是,Docker需要依赖宿主机的内核

2 Docker用途

提供一次性的环境:软件测试时使用

提供弹性云服务,容器可以随时开关,可以实现动态的扩容和缩容

组件微服务,一台机器可以跑多个服务,在一台主机模拟微服务

3 MacM1 下载安装Docker

官方下载:https://docs.docker.com/desktop/install/mac-install/

下载后拖拽到 applications 文件夹即可

1 配置环境变量

zsh: command not found: docker

配置用户文件

cd
vim .zshrc

添加一下内容

DOCKER_HOME=/Applications/Docker.app/Contents/Resources
PATH=$DOCKER_HOME/bin:$PATHexport PATH

生效配置

source .zshrc

查看Docker版本

> docker -v
Docker version 27.0.3, build 7d4bcd8

4 配置Docker

2 设置Docker资源

在这里插入图片描述

3 设置Docker镜像

登录阿里云镜像服务中心:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

登录后即可获取一个地址

在这里插入图片描述

添加到配置文件中,然后Apply and Restart
在这里插入图片描述
或者手动重启Docker


参考

mac M1 下安装docker 及相关镜像 https://blog.csdn.net/qq_36780538/article/details/118381210

Docker配置阿里云镜像仓库 http://blog.java1234.com/blog/articles/572.html

zsh: command not found: docker https://blog.csdn.net/qq_45296221/article/details/122191265

相关文章:

Docker简介 MacM1安装Docker

文章目录 1 Docker简介2 Docker VS 虚拟机1 Docker优势2 Docker用途 3 MacM1 下载安装Docker1 配置环境变量 4 配置Docker2 设置Docker资源3 设置Docker镜像 参考 1 Docker简介 Docker主要解决了软件开发和运行配置的问题,但是由于其功能的强大,也被应用…...

【Linux】yum软件包管理器(使用、生态、yum源切换)

目录 1.yum-软件包管理器😸1.1yum使用方法1.2什么是yum?😸1.3yum的周边生态1.4yum源切换1.4.1 查看系统本身yum源1.4.2 软件源1.4.3yum源配置 1.yum-软件包管理器 以下操作需要联网的情况下进行 😸1.1yum使用方法 安装软件时由于需…...

群晖NAS安装Video Station结合内网穿透实现远程访问本地存储的影音文件

文章目录 前言1.使用环境要求:2.下载群晖video station:3.公网访问本地群晖video station:4.公网条件下访问本地群晖video station5.公网条件下使用移动端(安卓,ios等系统)访问本地群晖video station 前言 …...

Vue中@click.stop与@click.prevent

Vue中click.stop与click.prevent 一、click.stop 问题&#xff1a;父元素中添加了一个click事件&#xff0c;其下面的子元素中也添加了click事件&#xff0c;此时&#xff0c;我想点击子元素获取子元素的点击事件&#xff0c;但却触发的是父元素的事件&#xff1a; <view …...

沐风老师3DMax对象随机颜色插件使用方法

3DMax对象随机颜色插件使用教程 3DMax对象颜色插件,是一个功能强大的脚本,它通过提供高级工具来操纵场景中的对象颜色、材质和实例,从而增强了3D设计师和艺术家的工作流程。这个多功能脚本提供了一系列功能,旨在简化对象、组和实例的着色过程。 3DMAX对象颜色插件主要具有…...

安卓将子模块打aar包,并将其远程依赖打包进去

生成 AAR 包 在Android Studio Terminal 窗口输入以下命令&#xff1a; ./gradlew :monitor:assembleRelease把 monitor 换成你子模块的名称&#xff0c;不出意外的话 就会在下面目录生成相应aar文件 注意&#xff1a;如果你的Java运行环境是Java 8 则在老一点的AS上 可以运…...

python 提取视频中的音频 采用ffmpeg-python 库

要使用 ffmpeg-python 库从视频文件中提取音频&#xff0c;首先需要确保你的系统中已经安装了 FFmpeg 和 ffmpeg-python 库。以下是详细的步骤&#xff1a; 步骤 1: 安装 FFmpeg 确保你的系统中已经安装了 FFmpeg。如果你使用的是 CentOS&#xff0c;可以参照前面的回答来安装 …...

区块链的搭建和运维4

区块链的搭建和运维4 (1) 搭建基于MySQL分布式存储的区块链 1.构建单群组网络节点 使用开发部署工具构建单群组网络节点&#xff0c;命令如下&#xff1a; bash build_chain.sh -l 127.0.0.1:4 -p 30300,20200,85452. 启动 MySQL 并设置账户密码 输入如下命令&#xff0c;…...

数据驱动决策:内容数据产品经理的成长与价值

数据驱动决策&#xff1a;内容数据产品经理的成长与价值 内容数据产品经理以数据为媒介&#xff0c;在用户与决策之间搭建桥梁&#xff0c;通过理解分析模型和用户决策路径&#xff0c;设计产品以促成更多决策产出&#xff0c;创造用户价值。例如&#xff0c;在衡量数据产品经理…...

pyinstaller 打包python 提示 object has no attribute

参考&#xff1a; 错误&#xff1a;gi.repository.BlockDev’ object has no attribute plugin_specs_from_names 查看包路径 rpm -ql python3-blockdev/usr/lib64/python3.7/site-packages/gi/overrides/BlockDev.py /usr/lib64/python3.7/site-packages/gi/overrides/__pyca…...

ubuntu20.04搭建RUST开发环境并与C语言交互

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 ubuntu20.04搭建RUST开发环境并与C语言交互 前言开战一、确认环境版本二、环境搭建三、hello world&#xff01;四、跟c语言进行交互1.rust调用C静态库2.C调用rust库 总结参考…...

C语言 ——— 学习、使用memmove函数 并模拟实现

目录 memmvoe函数的功能 学习memmove函数​编辑 模拟实现memmove函数 memmvoe函数的功能 memmvoe函数的功能类似于memcpy函数&#xff0c;都是内存拷贝&#xff0c;唯一的区别是memcpy函数不能成功拷贝原数据&#xff0c;而memmvoe函数可以 举例来说&#xff1a; [1, 2, 3…...

职场中必须明白的三个道理,不明白无出头之日,你越早知道越好

职场中有很多优秀的人才&#xff0c;他们工作能力出众&#xff0c;为人处事也非常的善良&#xff0c;但是有时候&#xff0c;这样的优点反而成了他们在职场中被欺负的原因&#xff0c;因为他们太善良&#xff0c;很容易被别人利用&#xff0c;为了自己的利益&#xff0c;有些人…...

做webserver项目的一些问题和思路总结

1.webserver是做什么的&#xff1f;这个项目最后想实现什么&#xff1f; 网络服务器&#xff0c;是一个处理HTTP请求并返回HTTP响应的程序。&#xff08;socket实现的是网络编程&#xff0c;不一定是HTTP&#xff0c;还有其他协议&#xff0c;具体协议由端口来确定&#xff09…...

大数据-70 Kafka 高级特性 物理存储 日志存储 日志清理: 日志删除与日志压缩

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…...

基于S7-200 SMART实现PID控制仿真实验

关键字&#xff1a;Matalb&#xff1b;S7-200 SMART&#xff1b;Modbus TCP&#xff1b;PID控制 系列文章目录 基于S7-200 SMART实现一键启停 顺序功能图——&#xff08;二&#xff09;设计机组延时关机程序 基于S7-200 SMART实现Modbus TCP通信 基于S7-200 SMART实现MATLAB写…...

社交及时通讯平台完整版源码,uniapp技术,可打包成app

源码简介&#xff1a; 全原生&#xff0c;从底层开始结构就完全不一样&#xff0c;mongodb的库&#xff0c;uniapp混编手端&#xff0c;二开难度要比视酷或者酷信容易很多。全开源&#xff0c;带开发文档。前端用的是uniapp技术&#xff0c;所以是多端合一&#xff0c;可以做h…...

TensorFlow和Pytorch是什么?干什么用的?

TensorFlow和Pytorch都是机器学习框架&#xff0c;允许用户自定义开发机器学习模型&#xff08;利用已经实现好的神经网络层&#xff09;。 1. 加载和预处理数据 加载数据&#xff1a;使用合适的库&#xff08;如 Pandas、Numpy 或 TensorFlow 的数据处理 API&#xff09;从文…...

采购人可否自行选择采购方式?|数智化招采系统支持多种采购方式

采购人是否有权自行确定采购方式&#xff0c;主要取决于采购项目的性质和规模&#xff0c;特别是是否达到公开招标的数额标准。 一、达到公开招标数额标准以上的项目 《中华人民共和国政府采购法实施条例》第二十三条规定&#xff1a;“采购人采购公开招标数额标准以上的货物…...

ubuntu dde 改为中文

在 Ubuntu Deepin Desktop Environment (DDE) 中&#xff0c;如果已经将系统语言设置为中文&#xff0c;但系统菜单仍然显示英文&#xff0c;可以尝试以下步骤解决&#xff1a; 检查语言设置&#xff1a;确保你的系统语言已经正确设置为中文。你可以在“系统设置”->“区域和…...

[文献阅读] Emo-VITS - An Emotion Speech Synthesis Method Based on VITS

[文献阅读]&#xff1a;An Emotion Speech Synthesis Method Based on VITS 在VITS基础上通过参考音频机制&#xff0c;获取情感信息&#xff0c;从而实现的情感TTS方式。 摘要 VITS是一种基于变分自编码器&#xff08;VAE&#xff09;和对抗神经网络&#xff08;GAN&#xf…...

[ElasticSearch] DSL查询

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏: &#x1f9ca; Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 &#x1f355; Collection与…...

金融系统渗透测试

金融系统渗透测试是保障金融机构网络安全的核心环节&#xff0c;它的核心目标是通过模拟攻击手段主动发现系统漏洞&#xff0c;防范数据泄露、资金盗取等重大风险。 一、金融系统渗透测试的核心框架 合规性驱动 需严格遵循《网络安全法》《数据安全法》及金融行业监管要求&am…...

LVGL手势识别事件无上报问题处理记录

最近在使用LVGL8.3开源库开源UI界面时,碰到使用FB驱动显示UI时,触摸屏手势识别事件接收不到的情况,通过如下调整可以处理该问题: 1、创建Top Object时,不能使用如下语句: lv_obj_t *page_obj = lv_obj_create(lv_scr_act()); 而要使用如下语句: lv_obj_t *page_obj =…...

【win | 自动更新关闭】win11

利用本地组策略编辑器 对于Windows 11专业版或更高版本的用户&#xff0c;可以利用本地组策略编辑器来完全关闭自动更新。按下“WinR”键&#xff0c;输入“gpedit.msc”并回车。在本地组策略编辑器中&#xff0c;依次展开“计算机配置”>“管理模板”>“Windows组件”&…...

win32相关(IAT HOOK)

IAT HOOK 什么是IAT Hook&#xff1f; IAT Hook&#xff08;Import Address Table Hook&#xff0c;导入地址表钩子&#xff09;是一种Windows平台下的API钩取技术&#xff0c;通过修改目标程序的导入地址表(IAT)来拦截和重定向API调用 在我们之前学习pe文件结构的导入表时&am…...

N元语言模型 —— 一文讲懂!!!

目录 引言 一. 基本知识 二.参数估计 三.数据平滑 一.加1法 二.减值法/折扣法 ​编辑 1.Good-Turing 估计 ​编辑 2.Back-off (后备/后退)方法 3.绝对减值法 ​编辑4.线性减值法 5.比较 三.删除插值法(Deleted interpolation) 四.模型自适应 引言 本章节讲的…...

什么是预训练?深入解读大模型AI的“高考集训”

1. 预训练的通俗理解&#xff1a;AI的“高考集训” 我们可以将预训练&#xff08;Pre-training&#xff09; 形象地理解为大模型AI的“高考集训”。就像学霸在高考前需要刷五年高考三年模拟一样&#xff0c;大模型在正式诞生前&#xff0c;也要经历一场声势浩大的“题海战术”…...

【LLM大模型技术专题】「入门到精通系列教程」LangChain4j与Spring Boot集成开发实战指南

LangChain4j和SpringBoot入门指南 LangChain4jLangchain4j API语言模型消息类型内存对象ChatMemory接口的主要实现设置 API 密钥SpringBoot Configuration配置ChatLanguageModelStreamingChatLanguageModel初始化ChatModel对象模型配置分析介绍说明通过JavaConfig创建ChatModel…...

OkHttp 3.0源码解析:从设计理念到核心实现

本文通过深入分析OkHttp 3.0源码&#xff0c;揭示其高效HTTP客户端的实现奥秘&#xff0c;包含核心设计理念、关键组件解析、完整工作流程及实用技巧。 一、引言&#xff1a;为什么选择OkHttp&#xff1f; 在Android和Java生态中&#xff0c;OkHttp已成为HTTP客户端的标准选择…...