Docker 容器化技术标准化笔记
一、Docker 核心概念1. 什么是容器化技术将应用 应用运行所需的全部依赖环境打包封装成一个镜像文件这个镜像可以在任意安装了 Docker 的系统上直接运行一次打包、到处运行。Docker 是目前最主流的容器化技术实现。2. 容器化 vs 虚拟机VM对比表格对比项虚拟机 VMDocker 容器虚拟化层级硬件级虚拟化基于 Hypervisor系统级虚拟化基于操作系统原理虚拟出整套硬件每个虚拟机有独立的内核系统共享宿主机内核用 namespace 和 cgroup 做隔离资源利用率低虚拟硬件 系统占用大量资源高只有应用本身没有额外系统开销启动速度分钟级秒级安全性 / 稳定性更高硬件级隔离稍低共享内核隔离3. Docker 两大核心底层技术namespace 命名空间实现隔离让每个容器觉得自己有独立的一套系统环境互相看不见PID namespace进程隔离容器里的进程和宿主机不冲突NET namespace网络隔离每个容器有独立的 IP、端口、网卡MNT namespace文件系统隔离容器有自己的根目录UTS namespace主机名隔离容器可以自己设主机名USER namespace用户隔离容器里的 root 和宿主机 root 不是一回事IPC namespace进程间通信隔离cgroup 控制组实现资源限制控制每个容器能用多少硬件资源防止一个容器占满宿主机限制 CPU 使用量限制内存大小限制磁盘 IO限制网络带宽补充容器有优先级优先级高的容器在宿主机资源紧张时不容易被 OOM 杀掉。4. Docker 三要素表格概念解释类比镜像 Image应用 依赖环境打包好的只读文件是模板相当于安装包 / 类 class容器 Container镜像运行起来的实例就是跑起来的应用相当于安装好运行中的程序 / 对象 instance仓库 Repository存放镜像的地方相当于应用商店 / 软件仓库仓库分类公有仓库Docker Hub官方、阿里云镜像仓库、网易云等私有仓库Harbor企业自建私有仓库最常用二、Docker 环境部署CentOS 7 专用1. 先卸载旧版本如果有的话bash运行# 卸载系统自带的旧docker如果有 yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine2. 安装 yum 工具包bash运行# 安装yum-config-manager等工具 yum install -y yum-utils device-mapper-persistent-data lvm23. 配置华为云 Docker yum 源国内下载快bash运行# 添加docker-ce的yum源文件用华为云镜像地址 yum-config-manager --add-repo https://repo.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo # 把源里的官方地址替换成华为云地址加速下载 sed -i sdownload.docker.comrepo.huaweicloud.com/docker-ce /etc/yum.repos.d/docker-ce.repoCentOS 7 不用改 releasever系统变量自动识别是 7。4. 查看可用的 Docker 版本bash运行# 列出所有可安装的docker-ce版本从高到低排序 yum list docker-ce --showduplicates | sort -r5. 安装 Docker方式一安装最新稳定版bash运行# 安装docker引擎、命令行工具、容器运行时 yum install -y docker-ce docker-ce-cli containerd.io方式二安装指定版本生产推荐固定版本更稳定bash运行# 指定版本号安装格式docker-ce-版本号 yum install -y docker-ce-24.0.6-1.el7 docker-ce-cli-24.0.6-1.el7 containerd.io注意版本号后面要带-1.el7CentOS 7 的包都带这个后缀。6. 启动 Docker 并设置开机自启bash运行# 启动docker服务 systemctl start docker # 设置开机自动启动 systemctl enable docker # 验证安装成功查看版本 docker version能看到 Client 和 Server 两部分信息就说明安装成功了。三、配置镜像加速器国内访问 Docker Hub 官方仓库很慢配置加速器从国内镜像站拉取。1. 创建 docker 配置目录如果不存在bash运行mkdir -p /etc/docker2. 编写加速器配置文件bash运行# 用tee命令写入配置daemon.json是docker的主配置文件 tee /etc/docker/daemon.json -EOF { registry-mirrors: [ https://docker.m.daocloud.io, https://noohub.ru, https://huecker.io, https://dockerhub.timeweb.cloud ] } EOF3. 重启 Docker 生效bash运行# 重载systemd配置重启docker服务 systemctl daemon-reload systemctl restart docker # 验证加速器是否生效看输出里的 Registry Mirrors docker info输出里找到Registry Mirrors:那一段能看到你配的加速器地址就成功了。四、Docker 镜像操作带案例 注释1. 查看本地所有镜像bash运行docker images # 或者等价命令 docker image ls输出字段说明REPOSITORY镜像名称TAG版本标签latest 表示最新版IMAGE ID镜像唯一 IDSIZE镜像大小2. 搜索镜像从 Docker Hub 找镜像bash运行# 搜索nginx相关的镜像 docker search nginx输出里OFFICIAL列是OK的就是官方镜像优先用官方的安全有保障。3. 下载拉取镜像bash运行# 格式docker pull 镜像名:版本号 # 不写版本号默认拉取 latest 最新版 # 案例1拉取最新版nginx docker pull nginx # 案例2拉取指定版本的nginx docker pull nginx:1.24 # 案例3拉取centos 7镜像 docker pull centos:74. 给镜像改名字打标签bash运行# 格式docker tag 原镜像名:版本 新镜像名:新版本 # 作用给镜像起个别名或者推送到私有仓库前必须改成仓库地址格式 # 案例1给本地nginx镜像改个名 docker tag nginx:latest mynginx:v1 # 案例2改成阿里云仓库格式推送前必须改 docker tag nginx:latest registry.cn-beijing.aliyuncs.com/你的命名空间/nginx:v1注意tag 只是给镜像加了个别名不是复制了一份两个名字指向同一个镜像 ID删一个另一个还在。5. 删除镜像bash运行# 格式docker rmi 镜像名:版本 或者 镜像ID # 案例1按名字删 docker rmi mynginx:v1 # 案例2按ID删ID写前几位就行能唯一识别就可以 docker rmi 605c77 # 案例3强制删除有容器在用也强行删 docker rmi -f nginx:latest注意如果镜像已经被容器使用了不加-f会删不掉要先删容器再删镜像。五、Docker 仓库操作阿里云镜像仓库为例1. 登录私有仓库bash运行# 格式docker login --username用户名 仓库地址 docker login --username你的阿里云账号 registry.cn-beijing.aliyuncs.com执行后输入密码阿里云仓库的访问密码不是登录密码提示Login Succeeded就登录成功了。2. 退出登录bash运行docker logout registry.cn-beijing.aliyuncs.com3. 推送镜像到私有仓库两步走先改名成仓库格式再 push 推送。bash运行# 第一步给本地镜像打标签改成仓库要求的格式 # 格式docker tag 本地镜像 仓库地址/命名空间/仓库名:版本 docker tag nginx:latest registry.cn-beijing.aliyuncs.com/你的命名空间/nginx:v1 # 第二步推送到仓库 docker push registry.cn-beijing.aliyuncs.com/你的命名空间/nginx:v14. 从私有仓库拉取镜像bash运行docker pull registry.cn-beijing.aliyuncs.com/你的命名空间/nginx:v1六、Docker 容器操作重点带案例 注释核心原则容器里必须有一个前台运行的守护进程没有前台进程容器会立刻退出。 容器的生命周期 主进程的生命周期主进程挂了容器就停了。1. 创建并启动容器docker run 最常用命令格式bash运行docker run [参数] 镜像名 [启动命令]常用参数表格参数作用-d后台运行守护进程模式返回容器 ID-i交互式保持标准输入打开-t分配一个伪终端-it一般一起用交互式进入容器--name给容器起个名字不用每次用 ID-p 宿主机端口:容器端口端口映射把容器端口映射到宿主机上外部才能访问-P大写 P随机映射容器所有暴露的端口到宿主机--rm临时容器退出后自动删除测试用-v 宿主机路径:容器路径数据卷挂载容器数据存到宿主机上-e 环境变量值给容器传环境变量实战案例bash运行# 案例1后台运行一个nginx容器起名mynginx把80端口映射到宿主机8080 docker run -d --name mynginx -p 8080:80 nginx # -d 后台跑 # --name 容器名叫mynginx # -p 8080:80 宿主机8080端口映射到容器的80端口 # 用的镜像是nginx:latest # 验证浏览器访问 宿主机IP:8080 能看到nginx默认页面 # 案例2交互式运行一个centos容器进去敲命令退出自动删除 docker run -it --rm centos:7 /bin/bash # -it 交互式终端 # --rm 退出就删 # /bin/bash 启动后执行bash命令进入shell # 输入 exit 退出容器自动删掉 # 案例3随机端口映射 docker run -d -P nginx # 大写P自动随机选个宿主机端口映射到容器80 # 用docker ps看映射了哪个端口2. 查看容器bash运行# 查看正在运行的容器 docker ps # 查看所有容器包括停止的 docker ps -a输出关键字段CONTAINER ID容器 IDIMAGE用的哪个镜像COMMAND容器启动命令STATUS状态Up 是运行中Exited 是已停止PORTS端口映射信息NAMES容器名字3. 进入运行中的容器推荐方式docker exec生产用这个bash运行# 格式docker exec -it 容器名/容器ID /bin/bash docker exec -it mynginx /bin/bash # -it 交互式终端 # mynginx 容器名 # /bin/bash 执行bash命令进入shell特点exit 退出容器容器还在运行不会停。这是和 attach 最大的区别生产环境用 exec。不推荐docker attachbash运行docker attach mynginx特点exit 退出后容器会停止基本不用了解就行。4. 容器启停操作bash运行# 启动一个停止的容器 docker start 容器名/ID # 停止一个运行的容器优雅停止给进程发信号让它保存退出 docker stop 容器名/ID # 强制杀死容器直接发KILL信号不等进程退出 docker kill 容器名/ID # 重启容器 docker restart 容器名/ID # 暂停容器容器还在内存里只是不干活了冻结住 docker pause 容器名/ID # 恢复暂停的容器 docker unpause 容器名/ID区分stop正常停止容器退出资源释放pause暂停挂起还占着内存随时可以恢复5. 删除容器bash运行# 删除一个已停止的容器 docker rm 容器名/ID # 强制删除运行中的容器也能删先杀再删 docker rm -f 容器名/ID # 批量删除所有已停止的容器清理用 docker rm $(docker ps -aq)6. 查看容器日志bash运行# 查看容器的标准输出日志 docker logs 容器名/ID # 持续跟踪日志类似tail -f实时看 docker logs -f 容器名/ID # 看最后100行 docker logs --tail 100 容器名/ID排错必备容器启动失败先看日志找原因。7. 查看容器 / 镜像详细信息bash运行# 查看容器的所有详细配置IP、挂载、网络、环境变量等 docker inspect 容器名/ID # 查看镜像的详细信息 docker inspect 镜像名输出是 JSON 格式信息非常全排错、查 IP 都用这个。8. 宿主机和容器之间互拷文件bash运行# 格式docker cp 源路径 目标路径 # 容器路径写法容器名:容器内路径 # 案例1把宿主机的文件拷进容器里 docker cp /root/index.html mynginx:/usr/share/nginx/html/ # 把宿主机的index.html拷到mynginx容器的网站根目录 # 案例2把容器里的文件拷出来到宿主机 docker cp mynginx:/etc/nginx/nginx.conf /root/ # 把容器里的nginx配置文件拷到宿主机/root下容器里没有 vi、没有 yum改配置就拷出来改完再拷回去。9. 查看容器文件系统的变化bash运行docker diff 容器名/ID输出三种标记AAdded新增的文件 / 目录DDeleted删除的文件 / 目录CChanged修改过的文件 / 目录可以看到容器运行后对文件系统做了哪些改动。七、CentOS 7 注意事项补充内核版本要求CentOS 7 内核 3.10 都支持 Docker默认内核就满足防火墙CentOS 7 默认 firewalldDocker 会自动管理 iptables 规则一般不用手动改SELinux如果开着 SELinux挂载目录可能有权限问题可以临时关了测试setenforce 0docker-composeCentOS 7 上 docker-compose 是单独的二进制文件不是插件需要单独下载安装

相关新闻

生命涌现的小龙虾技能之【Child Emotion Recognition Analyzer | 儿童情绪识别分析工具】简介

生命涌现的小龙虾技能之【Child Emotion Recognition Analyzer | 儿童情绪识别分析工具】简介

😊 Child Emotion Recognition Analyzer | 儿童情绪识别分析工具 智能健康/识别分析中枢 图片/视频智能分析 结构化报告 历史报告云端查询 🧭 技能概览 | Overview 模块内容🏷️ 技能名称儿童情绪识别分析工具🎯 核心目标儿童…

2026/7/5 3:06:33阅读更多 →
AI漫剧制作全流程拆解:从文本到成片的技术链路详解

AI漫剧制作全流程拆解:从文本到成片的技术链路详解

一、前言AI漫剧是2025年以来AIGC落地最快的应用场景之一:用生成式AI把文字剧本转化为动态漫画风格的短剧视频。它本质上是一条多模态生成管线(Pipeline),串联了文本生成、文生图、图生视频、TTS语音合成等多个模型能力。本文从技术…

2026/7/5 3:01:33阅读更多 →
制造业工控终端安全实战:120+台设备通过苹果供应链审计,SLA双因素认证如何落地

制造业工控终端安全实战:120+台设备通过苹果供应链审计,SLA双因素认证如何落地

制造业工控终端安全实战:120台设备通过苹果供应链审计,SLA双因素认证如何落地 导语:2026亚洲机器人大会刚落幕,"具身智能商业化元年"正式开启。某汽车零部件工厂120台冲压/焊接/数控设备面临苹果供应链严苛的安全审计—…

2026/7/5 3:01:33阅读更多 →
抖店运费模板怎么设置才不亏一件代发商家要注意哪些地区

抖店运费模板怎么设置才不亏一件代发商家要注意哪些地区

抖店运费模板怎么设置才不亏?一件代发商家要注意哪些地区 很多抖店无货源商家亏钱,不是亏在采购价,而是亏在运费。1688 供应商的运费规则和抖店前台展示不一样,如果商家统一包邮,偏远地区一单可能把利润全部吃掉。 一、…

2026/7/5 4:16:37阅读更多 →
一场数据基建与消费场景的跨界实验

一场数据基建与消费场景的跨界实验

把电影票服务整合进各地的大数据中心或政务App,确实正在成为一个新趋势。它的目的并非直接卖票盈利,而是为了将政务平台从一个“办事窗口”升级为更具活力的“城市服务总入口”。 这背后最核心的考量,是通过高频的娱乐服务来带动低频政务App的…

2026/7/5 4:16:37阅读更多 →
Citra模拟器终极指南:5个简单方法解决黑屏闪退问题

Citra模拟器终极指南:5个简单方法解决黑屏闪退问题

Citra模拟器终极指南:5个简单方法解决黑屏闪退问题 【免费下载链接】citra A Nintendo 3DS Emulator 项目地址: https://gitcode.com/GitHub_Trending/ci/citra Citra是一款功能强大的Nintendo 3DS模拟器,让玩家能够在PC上体验经典的3DS游戏。然而…

2026/7/5 4:16:37阅读更多 →
S7-200 SMART V2.3 运动轴组态:3步完成步进电机点动/定位控制(附程序块)

S7-200 SMART V2.3 运动轴组态:3步完成步进电机点动/定位控制(附程序块)

S7-200 SMART V2.3 运动轴组态:3步完成步进电机点动/定位控制(附程序块)在工业自动化领域,步进电机的精确控制一直是工程师们关注的重点。西门子S7-200 SMART PLC凭借其强大的运动控制功能,为这一需求提供了高效解决方…

2026/7/5 4:16:37阅读更多 →
点估计与估计量理论 — 统计推断与估计理论

点估计与估计量理论 — 统计推断与估计理论

简简单单 Online zuozuo :本心、输入输出、结果 文章目录 点估计与估计量理论 — 统计推断与估计理论 前言 1、概念定义 2、原理与机制 Cramer-Rao 不等式 MLE 的渐近性质 Rao-Blackwell 定理与 Lehmann-Scheffe 定理 信息几何视角 自然梯度在优化中 与 ML 的联系 3、典型应用…

2026/7/5 4:16:37阅读更多 →
终极Nucleus Co-Op分屏工具:一台电脑实现多人本地联机的完整指南

终极Nucleus Co-Op分屏工具:一台电脑实现多人本地联机的完整指南

终极Nucleus Co-Op分屏工具:一台电脑实现多人本地联机的完整指南 【免费下载链接】nucleuscoop Starts multiple instances of a game for split-screen multiplayer gaming! 项目地址: https://gitcode.com/gh_mirrors/nu/nucleuscoop 想象一下这样的场景&a…

2026/7/5 4:11:37阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/5 0:01:08阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/5 0:01:08阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/5 0:01:08阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/5 0:01:08阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/5 0:01:08阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/5 0:01:08阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/5 1:30:27阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/5 3:48:10阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/5 3:48:09阅读更多 →