docker容器技术
什么是docker
Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 OverlayFS 类的 Union FS 等技术,对进程进行封装隔离,属于 操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。最初实现是基于 LXC,从 0.7 版本以后开始去除 LXC,转而使用自行开发的 libcontainer,从 1.11 版本开始,则进一步演进为使用 runC 和 containerd。
简单来说就是,用golang语言开发的一项基于linux的lxc技术的容器管理软件
docker结构

Docker本身架构

发展历史
物理机->虚拟机->虚拟机容器技术(LXC,linux container)->docker为代表的容器管理技术。
linux本身是支持lxc的,用于资源隔离(基于namespace + cgroup)
相比虚拟机,容器更加轻量级

容器
linux本身是支持lxc的,用于资源隔离(基于namespace + cgroup) 容器和其他传统的环境相比

容器的作用
运行镜像,可以直接多外提供服务
- 隔离进程,隔离资源
- 限制资源
- 直接和硬件对接,无虚拟机格外的消耗
相关概念
1. 镜像
打包了代码和运行环境的包,是静态文件,不能直接对外提供服务
2. 容器
3. 仓库
- 公有仓-docker registry
- 私有仓(企业)-harbor
docker使用
1. 创建一个容器运行一个镜像
docker run xxx[nginx,mysql] [-d]
它表示如下
- 下载镜像,如果不存在的话
- 初始化容器,分配隔离资源,如访问ip等
2. 如何进入docker下的某个容器
docker exec [-ti] docker-case sh
3. 如何删除容器
docker rm -f [container name]
或者
docker rm [conatiner id]
4. 宿主机如何访问容器
docker run --name xxxx -d -p [宿主机port]:[容器port] image-name
比如:
docker run --name my-ubuntu-nginx -d -p 8080:80 asx-nginx:ubunt
让后执行curl localhost:容器端口就好了,可以通过公网访问了
5. 拉镜像
docker pull image@tag
比如
docker pull ubuntu@latest
5. 构建对象
docker build [.](当前路径)[-t] image-name:tage [-f] dockerfile-name
dockerfile-name是一些列docker可识别的脚本文件,比如
docker build . -t asx-nginx:ubunt -f Dockerfile
镜像的相关操作
镜像的操作和流程图如下

相关命令
1. 删除镜像
docker rmi [image-name]
1. 删除镜像
docker rmi [image-name]
2. 导出镜像到文件
docker save -o file-name.file_type image@tag
比如
docker save -o nginx.tar nginx:latest
3. 从文件中导入镜像
docker load -i file-name.file_type
比如docker load -i nginx-ubuntu.tar
仓库的相关操作
仓库分为本地仓库和公共仓库,通常是使用公共仓库,除非建立自己的仓库
1. 建立私有仓
docker run -d -p 5000:5000 --restart always --name registry registry:2
2. 推送image
- tag image 的仓库地址为本地仓
docker tag ubuntu localhost:5000/ubuntu
- push tag后的image
docker push localhost:5000/ubuntu
3. 下载image
docker pull localhost:5000/ubuntu
4. 容器数据持久化
- 挂机主机目录
docker run --name xxx -d -v /var/log:/var/log nginx:alpine
docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d -v /opt/mysql/:/var/lib/mysql mysql:5.7
- 使用valomue卷
docker volume ls
docker volume create vol-name
docker run --name xxx -d -v vol-name:/var/log:vol-name/var/log nginx:alpine
访问case: curl -x http://[localhost|public-ip]:port/v2/ubuntu/tags/list 访问
5. 查看私有仓的images
容器和宿主机的交互
- 文件容器->宿主机
docker cp[operate] file container-name/path
case
docker cp /tmp/test.txt nginx:/tmp
2.容器->宿主机
docker cp container-name/filepath server/path
case
docker cp nginx:/tmp/file.txt ./tmp
相关文章:
docker容器技术
什么是docker Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 OverlayFS 类的 Union FS 等技术,对进程进行封装隔离,属于 操作系统层面的虚拟化技术。由于隔离的进程独…...
设计模式七大设计原则
文章目录 1、什么是设计模式2、单一职责原则3、开闭原则4、接口隔离原则5、依赖倒置原则6、迪米特法则(最少知道原则)7、里式替换原则8、组合优于继承 设计模式主要是为了满足一个字 变,这个字,可能是需求变更、可能是场景变更&a…...
【Hello Network】TCP协议相关理解
作者:小萌新 专栏:网络 作者简介:大二学生 希望能和大家一起进步 本篇博客简介:补充下对于TCP协议的各种理解 TCP协议相关实验 TCP相关试验理解CLOSE_WAIT状态理解TIME_WAIT状态解决TIME_WAIT状态引起的bind失败的方法理解listen的…...
实施CRM目标有哪几步?如何制定CRM目标?
在当今竞争激烈的商业环境中,与客户建立持久的关系是企业重要的工作。CRM客户管理系统能有效帮助企业管理优化流程、管理客户,提高销售成功率,推动收入增长。那么您了解如何实施CRM吗?下面说说实施CRM目标是什么,如何设…...
船舶建造概论(船舶建造工艺任务与现代造船模式)
船舶建造概论 1 船舶建造概论1.1 船舶建造工艺主要任务1.2 船舶建造流程(1)钢材料预处理(2) 钢材料加工(3)分段制作(4)总段制作(5)船台合拢(6&…...
项目内训(2023.5.6)
目录 Nacos是什么? 领域模型是什么? domain模块一般是干什么的? 在小乌龟中合并其他分支的作用是什么? nacos的配置文件 服务集群、服务提供、服务更加灵活庞大、消费服务、访问比较麻烦,A和B服务一起访问 系统结…...
【操作系统OS】学习笔记第二章 进程与线程(下)【哈工大李治军老师】
基于本人观看学习 哈工大李治军老师主讲的操作系统课程 所做的笔记,仅进行交流分享。 特此鸣谢李治军老师,操作系统的神作! 如果本篇笔记帮助到了你,还请点赞 关注 支持一下 ♡>𖥦<)!! 主页专栏有更多࿰…...
Linux命令集(Linux文件管理命令--rmdir指令篇)
Linux命令集(Linux文件管理命令--rmdir指令篇) Linux文件管理命令集(rmdir指令篇)5. rmdir(remove directory)1. 删除空的目录 folder12. 强制删除目录 folder1(包括非空目录)3. 递归删除目录及其目录下所有…...
在技术圈超卷的当下,学历到底是敲门砖还是枷锁?
前言 最近,突然之间被“孔乙己文学”刷屏了,短时间内“孔乙己文学”迅速走红,孔乙己是中国文学中的一位经典人物,他的长衫被认为是他的象征之一,孔乙己的长衫折射出很多现象,既有社会的,也有教育…...
Linux cgroup
前言 Cgroup和namespace类似,也是将进程进程分组,但是目的与namespace不一样,namespace是为了隔离进程组之前的资源,而Cgroup是为了对一组进程进行统一的资源监控和限制。 Cgroup的组成 subsystem 一个subsystem就是一个内核模…...
PID整定二:基于Ziegler-Nichols的频域响应
PID整定二:基于Ziegler-Nichols的频域响应 1参考2连续Ziegler-Nichols方法的PID整定2.1整定方法2.2仿真示例 1参考 1.1根轨迹图的绘制及分析 1.2计算机控制技术01-3.4离散系统的根轨迹分析法 1.3PID控制算法学习笔记 2连续Ziegler-Nichols方法的PID整定 2.1整定…...
【tkinter 专栏】专栏前言
文章目录 前言本章内容导图1. tkinter 工具及特点2. 为什么使用 Python 进行 GUI 设计?2.1 Python 可以做什么2.2 使用 tkinter 可以干什么?3. 如何学习使用 tkinter 进行 GUI 设计?4. 开发环境搭建4.1 Python 的版本4.2 安装 Python4.2.1 下载 Python 安装包4.2.2 安装 Pyt…...
解决Linux中文字体模糊的4种方法
在Linux中,字体是非常重要的一部分,因为它们直接影响到用户的视觉体验。如果Linux字体模糊不清,那么用户将很难阅读文本,这将极大地降低用户的工作效率。本文将介绍Linux Mint中文字体模糊的问题,并提供一些解决方案。…...
【Android入门到项目实战-- 7.3】—— 如何调用手机摄像头和相册
目录 一、调用摄像头拍照 二、打开相册选择照片 学完本篇文章可以收获如何调用手机的摄像头和打开手机相册选择图片功能。 一、调用摄像头拍照 先新建一个CameraAlbumTest项目。 修改activity_main.xml,代码如下: 按钮打开摄像头,ImageView将拍到的…...
浅聊AIOT
引言 IoT是(Internet of Things)的简称,也就是人们常说的物联网;随着智能硬件的发展和推广,制造成本也随之下降,很多的厂家也慢慢地拥抱网络互联,逐步实现设备互联,也就进入了人们常说的万物互联时代。虽然…...
Python之模块和包(九)
1、模块 1、模块概述 模块是一个包含了定义的函数和变量等的文件。模块可以被程序引入,以使用该模块中的函数等功能。通俗讲:模块就好比是工具包,要想使用这个工具包中的工具(就好比函数),就需要导入这个模块。 2、import 在P…...
C++-----动态规划
目录 一、动态规划的基本思想 二、设计动态规划法的步骤 三、动态规划问题的特征 4.1 矩阵连乘积问题 4.1.1 分析最优解的结构 4.1.2 建立递归关系 4.1.3 计算最优值 4.1.3 计算最优值 4.1.3 构造最优解 4.2 动态规划算法的基本要素 4.2.1 最优子结构 4.2.2 重叠子问题 …...
2.2 Linux控制台访问CLI
系列文章目录 第1章 Linux Shell简介 第2章 Shell基础 <本章所在位置> 第3章 Bash Shell基础命令 第4章 Bash Shell命令进阶 第5章 Linux Shell深度理解 第6章 Linux环境变量 第7章 Linux文件权限 第8章 Linux文件系统的管理 第9章 Linux软件安装 第10章 Linux文本编辑器…...
代码随想录补打卡 509 斐波那契数列
代码如下 //斐波那契数列的第0项是0 第一项是1 func fib(n int) int { if n < 1 { return n } dp : make([]int,n1) dp[0] 0 dp[1] 1 for i : 2 ; i < n ; i { dp[i] dp[i-1] dp[i-2] } return dp[n] } 70 爬楼梯 代码如下 func climbStairs(n int) int …...
【每日一题Day195】LC1003检查替换后的词是否有效 | 栈
检查替换后的词是否有效【LC1003】 给你一个字符串 s ,请你判断它是否 有效 。 字符串 s 有效 需要满足:假设开始有一个空字符串 t "" ,你可以执行 任意次 下述操作将 t 转换为 s : 将字符串 "abc" 插入到 t…...
[特殊字符] 为什么99%的数字孪生都是“假的”?——镜像视界三维重构与视频反演技术重塑空间智能底层逻辑
🚀 为什么99%的数字孪生都是“假的”?——镜像视界三维重构与视频反演技术重塑空间智能底层逻辑如果你接触过数字孪生项目,或者看过相关展示系统,大概率见过这样一种典型场景:一个极具视觉冲击力的三维城市或工业模型&…...
Wan2.2-I2V-A14B开发者实践:基于FastAPI封装私有视频生成服务
Wan2.2-I2V-A14B开发者实践:基于FastAPI封装私有视频生成服务 1. 镜像概述与核心优势 Wan2.2-I2V-A14B是一款专为文本到视频生成任务优化的私有部署镜像,特别针对RTX 4090D 24GB显存显卡进行了深度优化。这个镜像将帮助开发者快速搭建私有视频生成服务…...
零代码部署:用Ollama快速搭建TranslateGemma-4B翻译服务
零代码部署:用Ollama快速搭建TranslateGemma-4B翻译服务 1. 为什么选择TranslateGemma-4B Google推出的TranslateGemma-4B是目前最先进的轻量级开源翻译模型之一。这个基于Gemma 3架构的模型专为多语言翻译任务设计,支持55种语言的互译,特别…...
以太网网络变压器:信号传输与隔离的关键设计
1. 以太网网络变压器的核心作用 第一次拆开路由器时,我盯着RJ45接口旁边那个黑色方块愣了半天——这玩意儿既不像电容也不像电感,后来才知道这就是网络变压器。别看它体积小,在百兆、千兆以太网中可是承担着信号传输和电气隔离的双重使命。 网…...
小白也能懂的EmbeddingGemma-300m:用Ollama一键部署嵌入模型
小白也能懂的EmbeddingGemma-300m:用Ollama一键部署嵌入模型 1. 什么是EmbeddingGemma-300m? EmbeddingGemma-300m是谷歌推出的开源文本嵌入模型,它能够将任何文本转换为300维的数字向量。这些向量有一个神奇的特性:语义相似的文…...
VMware虚拟机体验FLUX.1:Windows系统免环境配置方案
VMware虚拟机体验FLUX.1:Windows系统免环境配置方案 想快速体验最新的AI绘画技术却苦于环境配置?FLUX.1作为当前最强的开源文生图模型之一,让很多Windows用户望而却步。本文介绍一种零门槛的解决方案——通过VMware虚拟机一键体验,…...
自定义默认提示词:PandaWiki 问答 “一键贴合业务”,企业降本增效新方案
深耕企业数字化与知识管理 7 年,服务过数百家中大型企业,发现企业知识库普遍存在三大核心痛点:AI 问答泛化、风格混乱、效率低下、人力成本高。PandaWiki 的自定义默认提示词功能,搭配多平台客服 开源可控,为企业提供…...
腾讯地图API实战:5分钟搞定经纬度录入与地图选点功能(Vue版)
腾讯地图API实战:5分钟搞定经纬度录入与地图选点功能(Vue版) 在当今的Web开发中,地图功能已成为许多应用的标配需求。无论是电商平台的店铺定位,还是社交应用的位置分享,甚至是企业内部系统的区域管理&…...
Simulink低通滤波器实战:从随机信号生成到参数调优(附完整模型)
Simulink低通滤波器实战:从随机信号生成到参数调优(附完整模型) 在嵌入式系统和自动化工程领域,信号处理的质量往往直接决定整个系统的稳定性。想象一下,当你从传感器获取的实时数据充满噪声和毛刺时,如何确…...
零基础部署Fun-ASR语音识别:支持GPU/CPU/MPS,开箱即用无需配置
零基础部署Fun-ASR语音识别:支持GPU/CPU/MPS,开箱即用无需配置 1. 为什么选择Fun-ASR? 语音识别技术已经成为现代办公和内容创作的重要工具,但传统解决方案往往面临三大痛点:部署复杂、准确率不足、依赖云端服务。Fu…...
