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

docker通用技术介绍

docker通用技术介绍

1.docker介绍

1.1 基本概念

docker是一个开源的容器化平台,用于快速构建、打包、部署和运行应用程序。它通过容器化技术将应用及其依赖环境(如代码、库、系统工具等)打包成一个标准化、轻量级的独立单元,实现跨环境的一致性运行。

docker与容器:容器是一种轻量级虚拟化技术,docker是创建和管理容器的工具。

1.2 docker的优势

1.环境一致性:开发、测试、生产环境使用相同镜像,避免“在我机器上能跑”的问题。

2.快速部署:秒级启动,支持自动化扩缩容(结合K8S)。

3.资源高效:无需模拟完整操作系统,节省计算资源。

4.隔离性:应用运行在独立沙箱,避免依赖冲突。

1.3 docker与虚拟机对比

docker虚拟机
虚拟化层级操作系统级(共享主机内核)硬件级(通过Hypervisor辅助)
启动速度秒级分钟级
资源占用低(MB级内存)高(GB级内存)
隔离性进程级隔离(通过namespace和cgroups)硬件级隔离(完全独立的操作系统)
安全性共享内核,存在潜在攻击面完全隔离,虚拟机漏洞不影响宿主机
镜像大小镜像分层复用,MB级包含完整OS,GB级
应用场景云原生和微服务、快速部署强隔离需求(如安全敏感应用)

2.安装配置

yum install docker-ce
systemctl  enable docker;systemctl  start docker#配置docker源
echo "x.x.x.x socp.io" >>/etc/hostscat >>/etc/docker/daemon.json<<EOF
{"live-restore": true,"insecure-registries":["socp.io"],			#镜像仓库#"graph": "/mnt/data01/docker",				#存储路径"log-driver": "json-file",					#默认日志驱动"log-opts": {"max-size": "150m","max-file": "10"}
}
EOFsystemctl restart docker

3.镜像管理

docker镜像是一个分层存储的文件系统,每一层都是只读的,并且可以被多个镜像共享。

docker images
docker pull <image>
docker pull socp.io/grafana/grafana:8.3.11
docker push <image>
docker rmi <image>

1.overlay(或overlay2)是docker默认的联合文件系统(unionFS)驱动,用于管理容器和镜像的分层存储。

它通过将多个只读层(镜像层)和一个可写层(容器层)合并,为容器提供统一的文件系统视图。当启动容器时,docker会基于镜像的只读层创建一个可写层(overlay挂载点),容器内的所有文件修改都发生在这一层。

作用:分层存储、写时复制(copy-on-write)

2.shm(共享内存)

shm是linux的共享内存(shared memory)文件系统(类型为tmpfs),基于内存的临时存储。docker默认挂载一个64MB的/dev/shm共享内存分区,用于进程间通信或某些依赖共享内存的应用。

4.容器管理

docker run -d \
-p 3000:3000 \
--restart=unless-stopped \
socp.io/grafana/grafana:8.3.11docker stop <id>
docker exec -it <id> <cmd>
docker rm <id>

5.docker网络

docker提供了多种网络驱动模式,支持灵活的网络配置,满足不同场景的需求。每个容器拥有独立的网络命名空间,隔离网络栈(IP、端口、路由表等)。

实际应用中需结合安全策略(如网络隔离、最小权限)和性能需求(如驱动选择)进行配置。

docker network ls
docker network inspect <id>

5.1 bridge网络(默认)

默认创建一个名为docker0的虚拟网桥,容器通过veth对连接到网桥。容器分配私有IP(172.17.0.0/16),宿主机通过NAT与外部通信。

适用于单机环境下容器间通信,或需要对外暴露服务的应用(如web服务器)。

5.2 host网络

容器直接共享宿主机的网络命名空间,使用宿主机IP和端口。无NAT或虚拟网桥,性能接近原生。

适用于需要极致网络性能的应用。

5.3 overlay网络

用于跨主机的容器通信。基于vxlan等隧道技术,封装容器流量并通过物理网络传输。

常用于微服务集群、K8S等容器编排平台。

5.4 none网络

容器不配置任何网络接口,仅保留lo回环地址。

完全隔离,适用于极端安全场景或自定义网络配置。

6.docker数据管理

数据卷(volume)是实现持久化存储的主要方式,它允许容器与宿主机之间共享数据,并确保数据在容器删除后依然保留。默认存储在/var/lib/docker/volumes/

docker volume create <name>			#创建数据卷
docker volume ls					#列出数据卷
docker volume inspect <name>		#查看数据卷信息
docker volume rm <name>				#删除数据卷docker volume create grafana-data
docker run -d \
-p 3001:3000 \
--restart=unless-stopped \
-v grafana-data:/var/lib/grafana/ \
socp.io/grafana/grafana:8.3.11

除了数据卷,还可以直接将宿主机的目录挂载到容器(绑定挂载),路径由用户指定

mkdir -p /test/grafana/data
chmod -R 777 /test/grafana/data-v /test/grafana/data:/var/lib/grafana/

7.日志与监控

docker logs <id> -f --tail 50	#查看日志
docker stats 			#实时资源监控
docker top <id> 		#查看进程树
docker inspect <id>		#查看容器信息docker cp container:/path/in/container /path/on/host			#在容器和宿主机之间复制文件docker日志路径:/var/lib/docker/containers/
内部文件路径:/var/lib/docker/overlay2/
启动命令:Entrypointdocker system df -v		#查看docker磁盘使用情况
docker system prune		#清理未使用的资源
docker system info 		#查看docker系统信息
docker system events	#监控事件日志

常见问题

1.区分容器进程or宿主机进程

#检查父进程链
pstree -aps <pid>#docker进程会在cgroup中标记容器ID或docker相关路径:
cat /proc/<pid>/cgroup

培训题目

1.如何查看docker配置文件?

2.如何查看docker容器最新日志?

3.如何查看某docker容器占用资源大小?

4.给出一个进程号,如何判断该进程是否为容器内部进程?

5.如何清理未使用的docker资源?

6.请安装docker,并配置镜像仓库地址为socp.io,容器日志驱动为json-file,轮转日志文件单个最大10MB,保留5个副本。

7.启动一个名为grafana的容器,要求:后台运行,映射宿主机3000端口到容器3000端口;挂载宿主机目录/test/grafana/data到容器/var/lib/grafana/持久化存储;设置容器为自启。容器正常启动后,导出日志到/root目录下。

相关文章:

docker通用技术介绍

docker通用技术介绍 1.docker介绍 1.1 基本概念 docker是一个开源的容器化平台&#xff0c;用于快速构建、打包、部署和运行应用程序。它通过容器化技术将应用及其依赖环境&#xff08;如代码、库、系统工具等&#xff09;打包成一个标准化、轻量级的独立单元&#xff0c;实…...

Ubuntu 下 nginx-1.24.0 源码分析 - ngx_buf_t

ngx_buf_t 定义在 src/core/ngx_buf.h typedef struct ngx_buf_s ngx_buf_t;struct ngx_buf_s {u_char *pos;u_char *last;off_t file_pos;off_t file_last;u_char *start; /* start of buffer */u_char …...

Spring Data JPA 中的分页实现:从 BasePage 到 Pageable

文章目录 Spring Data JPA 中的分页实现&#xff1a;从 BasePage 到 Pageable背景&#xff1a;为什么需要分页&#xff1f;认识 BasePage 类深入 toPageable() 方法1. 处理页码和页面大小2. 处理排序方向3. 处理排序字段4. 生成 Pageable 对象 实战&#xff1a;如何使用 BasePa…...

自然语言处理NLP入门 -- 第八节OpenAI GPT 在 NLP 任务中的应用

在前面的学习中&#xff0c;我们已经了解了如何使用一些经典的方法和模型来处理自然语言任务&#xff0c;如文本分类、命名实体识别等。但当我们需要更强的语言生成能力时&#xff0c;往往会求助于更先进的预训练语言模型。OpenAI 旗下的 GPT 系列模型&#xff08;如 GPT-3、GP…...

HTML:自闭合标签简单介绍

1. 什么是自结束标签&#xff1f; 定义&#xff1a;自结束标签&#xff08;Self-closing Tag&#xff09;是指 不需要单独结束标签 的 HTML 标签&#xff0c;它们通过自身的语法结构闭合。语法形式&#xff1a; 在 HTML5 中&#xff1a;直接写作 <tag>&#xff0c;例如 …...

智能家居遥控革命!昂瑞微HS6621EM:用「芯」定义AIoT时代的语音交互标杆

AIoT爆发期&#xff0c;遥控器为何成为智能家居的「隐形战场」&#xff1f; 随着Meta、苹果等巨头加速布局空间计算&#xff0c;智能家居生态正从「单一设备联网」向「全场景无感交互」跃迁。作为高频使用的入口设备&#xff0c;语音遥控器的性能直接决定用户体验天花板。昂瑞微…...

AI学习第七天

数组&#xff1a;基础概念、存储特性及力扣实战应用 在计算机科学与数学的广袤领域中&#xff0c;数组作为一种极为重要的数据结构&#xff0c;发挥着不可或缺的作用。它就像一个有序的 “数据仓库”&#xff0c;能高效地存储和管理大量数据。接下来&#xff0c;让我们深入了解…...

Grafana使用日志7--开启Sigv4

背景 在Grafana中&#xff0c;有些data source是需要开启sigv4认证的&#xff0c;例如OpenSearch&#xff0c;这个配置项默认是关闭的&#xff0c;这里我们介绍一下怎么开启 步骤 传统方式 如果我们想在Grafana中开启sigv4认证&#xff0c;我们需要在grafana.ini中修改一个…...

【Redis】Redis 入门

借鉴枫枫知道 一、连接 redis 1.1 命令行连接 // 完整的命令 redis-cli -h 127.0.0.1 -p 6379 -a password// 简写 redis-cli// 认证&#xff0c;进行redis之后 auth password1.2 go 代码连接 package mainimport ("fmt""github.com/go-redis/redis" …...

一文了解:部署 Deepseek 各版本的硬件要求

很多朋友在咨询关于 DeepSeek 模型部署所需硬件资源的需求&#xff0c;最近自己实践了一部分&#xff0c;部分信息是通过各渠道收集整理&#xff0c;so 仅供参考。 言归正转&#xff0c;大家都知道&#xff0c;DeepSeek 模型的性能在很大程度上取决于它运行的硬件。我们先看一下…...

15.14 QLoRA量化低秩适配微调:华盛顿大学的显存优化革命

QLoRA量化低秩适配微调:华盛顿大学的显存优化革命 一、技术架构解析 #mermaid-svg-Rkx3w3RQJ1e7odbb {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Rkx3w3RQJ1e7odbb .error-icon{fill:#552222;}#mermaid-svg-Rk…...

软件工程复试专业课-能力成熟度模型CMM

CMM CMM概念CMM的核心CMM来由CMM的目的成熟度等级初始级可重复级已定义级已管理级优化级 CMM概念 即能力成熟度模型&#xff0c;是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。 CMM是改进软件过程的有效策略。它的基本思想是&#xff0…...

Dify使用和入门

第一步&#xff1a;了解 Dify 在开始之前&#xff0c;先简单了解一下 Dify 是什么&#xff1a; Dify 是一个开源的 LLM 应用开发平台&#xff0c;专注于帮助开发者快速构建生产级的生成式 AI 应用。它支持知识库集成、RAG&#xff08;检索增强生成&#xff09;技术、复杂工作…...

Mercury、LLaDA 扩散大语言模型

LLaDA 参考&#xff1a; https://github.com/ML-GSAI/LLaDA https://ml-gsai.github.io/LLaDA-demo/ 在线demo&#xff1a; https://huggingface.co/spaces/multimodalart/LLaDA Mercury 在线demo&#xff1a; https://chat.inceptionlabs.ai/ 速度很快生成...

Windows 图形显示驱动开发-WDDM 3.2-自动显示切换(十二)

API 更改 ADS 功能增加了以下公共 API 功能&#xff1a; 枚举系统中的多路复用器设备。查询有关多路复用器的信息&#xff0c;例如&#xff0c;它连接了哪些目标&#xff0c;以及当前切换到哪个目标。触发多路复用器切换。如何检测多路复用器是否已切换。 枚举系统中的多路复…...

Windows环境下SuperMapGIS 11i 使用达梦数据库

1. 环境介绍&#xff1a; 1.1. 操作系统&#xff1a; windows server 2019 1.2. GIS 软件&#xff1a; 1.2.1. GIS 桌面 supermap-idesktopx-11.3.0-windows-x64-bin 下载链接&#xff1a;SuperMap技术资源中心|为您提供全面的在线技术服务 安装教程&#xff1a;绿色版&…...

Claude 3.7 Sonnet深度解析:混合推理模型如何重塑AI编程能力

引言 2025年2月25日&#xff0c;人工智能领域领先企业Anthropic正式发布了新一代大语言模型Claude 3.7 Sonnet。作为全球首个混合推理AI模型&#xff0c;Claude 3.7 Sonnet在编程开发、逻辑推理以及任务处理效率等方面实现了突破性进展。本文将从核心特性、性能评测、竞品对比…...

IP属地是通过卫星定位的吗?如何保护用户隐私

在数字时代&#xff0c;网络空间成为了人们日常生活不可或缺的一部分。随着社交媒体、在线服务等平台的兴起&#xff0c;用户IP属地信息的重要性日益凸显。然而&#xff0c;关于IP属地是如何确定的&#xff0c;尤其是是否通过卫星定位这一问题&#xff0c;却常常引发公众的疑问…...

金融赋能绍兴纺织 民生银行助力外贸中小微企业“走出去”

在浙江绍兴&#xff0c;纺织业作为一张熠熠生辉的产业名片&#xff0c;承载着深厚的历史底蕴与蓬勃的发展活力。这里依傍长三角经济圈&#xff0c;交通网络纵横交错&#xff0c;将原材料产地与广阔市场紧密相连&#xff1b;产业集群高度成熟&#xff0c;上下游产业链完备&#…...

标记符号“<”和“>”符号被称为“尖括号”或“角括号”

你提到的“<”和“>”符号被称为“尖括号”或“角括号”。它们常用于编程语言中表示类型参数&#xff08;如泛型&#xff09;、HTML标签&#xff08;如<div>&#xff09;、数学中的不等式&#xff08;如< 5&#xff09;等。 好的&#xff0c;我来用通俗的方式解…...

一键部署DeepSeek

腾讯Cloud Studio提供DeepSeek一键部署功能&#xff0c;0行代码&#xff0c;秒级部署使用&#xff01; 重点是每月免费提供10000分钟&#xff01; 不用等待模型下载&#xff0c;创建即可使用。 内置 Ollama、DeepSeek-R1 1.5B、7B、8B、14B 及 32B 模型。 热门模板 AI模板 前…...

科普:ROC AUC与PR AUC

在评价二分类模型性能时&#xff0c;有许多评价指标&#xff0c;其中&#xff0c;有一对是用面积AUC&#xff08;Area Under the Curve&#xff09;做评价的&#xff1a;ROC AUC与PR AUC 本文我们对ROC AUC与PR AUC进行多维度对比分析&#xff1a; 一、定义与核心原理 维度RO…...

自动化测试无法启动(java.net.SocketException)

在运行测试代码,对浏览器进行自动化操作时,遇到了以下问题,添加依赖,编写了测试代码,但是程序无法运行 这个有两种原因(我使用的是谷歌浏览器): 网络问题: 因为需要从GitHub上下载对应包,所以有时候可能会出现网络问题,这个时候可以打开VPN之后,重新对程序进行启动 浏览器版本…...

大白话解释xxl-job是什么 有什么用 怎么用

XXL-JOB是什么&#xff1f; XXL-JOB就像快递公司的“总调度中心”&#xff0c;专门帮你的程序在不同服务器之间协调和执行定时任务。比如你有个电商系统&#xff0c;每天凌晨要统计订单数据、每小时要发促销短信&#xff0c;这些定时任务交给XXL-JOB来统一管理&#xff0c;它能…...

STM32G473VET6 在 Keil MDK 下手动移植 FreeRTOS 指南

下面将详细介绍如何在 Keil MDK 环境下将 FreeRTOS 手动移植到 STM32G473VET6 微控制器上。内容涵盖工程创建、获取源码、文件组织、移植层适配、测试任务编写以及编译调试等步骤。 1. 工程搭建&#xff08;Keil 项目创建&#xff09; 创建基础工程&#xff1a;首先准备一个基…...

WPF中对滚动条进行平滑滚动

有时候我们在动态添加内容时&#xff0c;需要将滚动条滚动到指定内容处。 一般我们会调用ScrollViewer的ScrollToVerticalOffset&#xff08;垂直方向&#xff09;函数和ScrollToHorizontalOffset&#xff08;水平方向&#xff09;函数来控制滚动条滚动到指定位置。 正常滚动效…...

API,URL,Token,XML,JSON是干嘛的

API&#xff0c;URL&#xff0c;Token&#xff0c;XML&#xff0c;JSON是干嘛的 API的作用 API&#xff08;Application Programming Interface&#xff0c;应用程序编程接口&#xff09;是一组定义和协议&#xff0c;用于构建和交互软件应用程序。API允许不同的软件系统之间…...

Threejs 解析几何体提取顶点数据流程

目录 前言 原生WebGL 整体解析过程简介 顶点颜色属性Geometry.colors Geometry转化为BufferGeometry 相关函数 WebGLAttributes.js WebGLGeometries.js WebGLObjects.js WebGLRenderer.js WebGLRenderer.js 前言 解析几何体对象&#xff0c;提取顶点数据&#xf…...

浮动与清除浮动

浮动&#xff08;float&#xff09;是CSS中用于布局的重要属性&#xff0c;它使元素脱离正常的文档流&#xff0c;并向左或向右移动&#xff0c;直到碰到另一个浮动元素或父元素的边界。 浮动的定义和作用 定义&#xff1a;浮动是通过设置 float 属性使元素脱离正常的文档流&a…...

YOLOv5 + SE注意力机制:提升目标检测性能的实践

一、引言 目标检测是计算机视觉领域的一个重要任务&#xff0c;广泛应用于自动驾驶、安防监控、工业检测等领域。YOLOv5作为YOLO系列的最新版本&#xff0c;以其高效性和准确性在实际应用中表现出色。然而&#xff0c;随着应用场景的复杂化&#xff0c;传统的卷积神经网络在处…...