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

#渗透测试#批量漏洞挖掘#某图创图书馆集群管理系统updOpuserPw SQL注入(CVE-2021-44321)
免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停…...

智能合约安全 | 合约无效化攻击
目录: 智能合约安全 合约无效化攻击 合约自毁函数 selfdestruct 攻击实现 漏洞防御 总结 智能合约安全 合约无效化攻击 合约无效化攻击类同于web安全中的逻辑漏洞中的一种 我们这里拿一个典型的例子来讲解 有这样一份智能合约, 每个人可以向其中发送1 eth 第七个…...

RabbitMQ 的介绍与使用
一. 简介 1> 什么是MQ 消息队列(Message Queue,简称MQ),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message而已。 其主要用途:不同进程Process/线程T…...
【手撕算法】K-Means聚类全解析:从数学推导到图像分割实战
摘要 聚类算法是探索数据内在结构的利器!本文手撕K-Means核心公式,结合Python代码实现与图像分割案例,详解: ✅ 欧氏距离计算 ✅ 簇中心迭代更新 ✅ 肘部法则优化 目录 摘要 目录 一、算法核心思想 二、数学原理详解 2.1 …...

【SQL技术】不同数据库引擎 SQL 优化方案剖析
一、引言 在数据处理和分析的世界里,SQL 是不可或缺的工具。不同的数据库系统,如 MySQL、PostgreSQL(PG)、Doris 和 Hive,在架构和性能特点上存在差异,因此针对它们的 SQL 优化策略也各有不同。这些数据库…...
RabbitMQ系列(二)基本概念之Publisher
在 RabbitMQ 中,Publisher(发布者) 是负责向 RabbitMQ 服务器发送消息的客户端角色,通常被称为“生产者”。以下是其核心功能与工作机制的详细解析: 一、核心定义与作用 消息发送者 Publisher 将消息发送到 RabbitMQ 的…...

OAK相机的抗震性测试
在工业环境中,双目视觉相机必须具备与工作环境同等的坚固性。鉴于部分客户会将我们的相机应用于恶劣环境(例如安装在重型机械上),我们依据EN 60068-2-6:2008标准对相机进行了振动耐受性测试。 测试涉及的相机型号包括:…...
2025最新Nginx高频面试题
2025最新Nginx高频面试题 摘要:本文整理了2025年企业高频Nginx面试题,覆盖核心原理、配置优化、安全防护及云原生场景实战,助你轻松应对技术面试! 核心原理篇 1. Nginx的Master-Worker架构优势是什么? 答案…...
【Kubernetes】API server 限流 之 maxinflight.go
这个文件实现了一个基于信号量(Channel)的简单限流器。 基础知识 总共有四种channel 带缓冲的channel nonMutatingChan、mutatingChan 都是带缓冲的channel ,这类channel 的特点是: 这允许最多 mutatingLimit /nonMutatingLimit 个请求同时获取令牌并执…...
推荐算法工程师的技术图谱和学习路径
推荐算法工程师的技术图谱和学习路径可以从多个维度进行概述,可以总结如下: 一、技术图谱 推荐算法工程师需要掌握的技术栈主要分为以下几个方面: 数学基础: 微积分、线性代数、概率论与统计学是推荐算法的基础,用于理解模型的数学原理和优化算法。高等数学、最优化理论…...

Milvus高性能向量数据库与大模型结合
Milvus | 高性能向量数据库,为规模而构建Milvus 是一个为 GenAI 应用构建的开源向量数据库。使用 pip 安装,执行高速搜索,并扩展到数十亿个向量。https://milvus.io/zh Milvus 是什么? Milvus 是一种高性能、高扩展性的向量数据…...
轮式机器人在复杂地形中如何选择合适的全局路径规划算法?
已思考完成 收起 嗯,用户问的是轮式机器人在复杂地形中如何选择合适的全局路径规划算法。首先,我需要理解复杂地形可能带来的挑战,比如崎岖的路面、动态障碍物、非结构化环境等等。轮式机器人在这里的运动控制需要考虑地形通过性、稳定性&…...

Metal学习笔记九:光照基础
光和阴影是使场景流行的重要要求。通过一些着色器艺术,您可以突出重要的对象、描述天气和一天中的时间并设置场景的气氛。即使您的场景由卡通对象组成,如果您没有正确地照亮它们,场景也会变得平淡无奇。 最简单的光照方法之一是 Phong 反射模…...

【字符串】最长公共前缀 最长回文子串
文章目录 14. 最长公共前缀解题思路:模拟5. 最长回文子串解题思路一:动态规划解题思路二:中心扩散法 14. 最长公共前缀 14. 最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符…...

Linux提权之详细总结版(完结)
这里是我写了折磨多提权的指令的总结 我这里毫无保留分享给大家哦 首先神魔是提权 我们完整的渗透测试的流程是(个人总结的) 首先提升权限是我们拿到webshell之后的事情,如何拿到webshell,怎末才能拿到webshell,朋友们等我更新,持续更新中,下一篇更新的是windows提权 好了 废…...

week 3 - More on Collections - Lecture 3
一、Motivation 1. Java支持哪种类型的一维数据结构? Java中用于在单一维度中存储数据的数据结构,如arrays or ArrayLists. 2. 如何在Java下创建一维数据结构?(1-dimensional data structure) 定义和初始化这些一…...
Pwntools 的详细介绍、安装指南、配置说明
Pwntools:Python 开源安全工具箱 一、Pwntools 简介 Pwntools 是一个由 Security researcher 开发的 高效 Python 工具库,专为密码学研究、漏洞利用、协议分析和逆向工程设计。它集成了数百个底层工具的功能,提供统一的 Python API 接口&am…...

PLC(电力载波通信)网络机制介绍
1. 概述 1.1 什么是PLC 电力载波通讯即PLC,是英文Power line Carrier的简称。 电力载波是电力系统特有的通信方式,电力载波通讯是指利用现有电力线,通过载波方式将模拟或数字信号进行高速传输的技术。最大特点是不需要重新架设网络…...

Qt监控系统远程回放/录像文件远程下载/录像文件打上水印/批量多线程极速下载
一、前言说明 在做这个功能的时候,着实费了点心思,好在之前做ffmpeg加密解密的时候,已经打通了极速加密保存文件,主要就是之前的类中新增了进度提示信号,比如当前已经处理到哪个position位置,发个信号出来…...

centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...

Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...

SpringCloudGateway 自定义局部过滤器
场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...

短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...

[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】
大家好,我是java1234_小锋老师,看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】,分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...

逻辑回归暴力训练预测金融欺诈
简述 「使用逻辑回归暴力预测金融欺诈,并不断增加特征维度持续测试」的做法,体现了一种逐步建模与迭代验证的实验思路,在金融欺诈检测中非常有价值,本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...

GraphQL 实战篇:Apollo Client 配置与缓存
GraphQL 实战篇:Apollo Client 配置与缓存 上一篇:GraphQL 入门篇:基础查询语法 依旧和上一篇的笔记一样,主实操,没啥过多的细节讲解,代码具体在: https://github.com/GoldenaArcher/graphql…...