LinuxDocker(学习笔记清晰简洁版)
一、Docker 基础与容器管理1.容器运行与管理命令用途关键选项/参数说明docker container run运行容器-d后台、-p端口映射、-e环境变量、--name命名基础运行命令docker container start/stop/restart启动/停止/重启容器容器名/ID生命周期管理docker container pause/unpause暂停/恢复容器容器名/ID暂停容器进程docker container ls列出容器-a显示所有、-q仅ID新命令格式替代docker psdocker container rm删除容器-f强制删除运行中容器删除已停止容器docker container prune删除所有已停止容器无清理专用命令docker system prune清理未使用资源-a删除所有未使用镜像清理容器、镜像、网络、缓存2.容器内执行命令命令用途关键点docker exec在运行中容器内执行命令必须容器正在运行启动的是附属进程非主进程容器重启后不保留3.容器信息查看命令用途输出格式/内容docker inspect查看容器/镜像详细元数据JSON格式包含IP、挂载点、端口、环境变量等完整信息docker logs查看容器日志标准输出和错误流docker port查看容器的端口映射显示主机端口与容器端口的映射关系4.新旧命令对比新命令推荐旧命令兼容功能docker container lsdocker ps列出容器docker image lsdocker images列出镜像docker container rmdocker rm删除容器docker image rmdocker rmi删除镜像二、Docker 存储管理1.存储类型对比类型特点适用场景管理命令数据持久性Volumes命名卷Docker管理路径透明/var/lib/docker/volumes/生产环境、数据库、共享数据docker volume系列命令持久化Bind Mounts绑定挂载主机绝对路径双向同步开发环境、代码热重载直接指定路径持久化tmpfs Mounts内存存储容器停止即丢失临时敏感数据、缓存仅Linux平台非持久化容器可写层默认存储层与容器生命周期绑定临时数据、测试容器自带容器删除即丢失2.卷操作命令# 创建卷 docker volume create myvolume ​ # 列出卷 docker volume ls ​ # 查看卷详情 docker volume inspect myvolume ​ # 删除未使用卷 docker volume prune ​ # 使用卷运行容器 docker run -v myvolume:/app/data nginx # 或新语法 docker run --mount sourcemyvolume,target/app/data nginx3.绑定挂载# 开发环境代码热重载 docker run -v /home/user/code:/app nginx ​ # 注意必须使用绝对路径4.重要特性数据丢失风险容器删除后可写层数据永久丢失卷共享多个容器可挂载同一卷实现数据共享性能Volumes通常优于Bind Mounts安全Bind Mounts可访问主机任意路径有安全风险存储路径Linux上Volumes默认存储在/var/lib/docker/volumes/三、Docker 网络与端口1.端口映射格式-p 主机端口:容器端口[/协议]示例-p 8080:80、-p 8080:80/tcp随机端口-p 容器端口Docker自动分配主机端口限制同一主机端口只能被一个容器绑定访问方式http://localhost:主机端口2.EXPOSE 指令作用仅作为文档说明提示容器监听的端口不产生实际效果不会自动发布端口到主机查看方法docker inspect --format{{.ContainerConfig.ExposedPorts}} 镜像名 # 或查看Dockerfile中的EXPOSE指令3.端口映射 vs EXPOSE特性-P参数EXPOSE指令作用实际映射端口到主机声明容器监听端口外部访问允许外部访问不允许外部访问配置位置docker run命令行Dockerfile 中必要性必须使用才能从外部访问可选仅为文档四、Docker Compose1.基本概念用途多容器应用的一键编排与管理文件docker-compose.yml核心优势简化多容器应用的定义、依赖管理和启停操作2.核心命令命令用途关键选项docker-compose up创建并启动所有服务-d后台运行docker-compose down停止并移除所有资源-v同时删除命名卷docker-compose logs查看所有服务日志-f跟踪日志docker-compose exec在服务容器内执行命令-it交互式终端docker-compose ps查看服务状态docker-compose config验证配置文件语法3.核心配置字段version: 3.8 # 推荐使用3.x版本 services: web: image: nginx:latest # 使用现有镜像 build: ./dir # 从Dockerfile构建 ports: - 8080:80 # 端口映射 volumes: - ./app:/usr/share/nginx/html # 绑定挂载 - data:/app/data # 命名卷 environment: - NODE_ENVproduction env_file: .env # 从文件加载环境变量 depends_on: # 依赖关系仅控制启动顺序 - db networks: - frontend db: image: postgres:13 ​ volumes: data: # 定义命名卷 ​ networks: frontend:4.网络配置默认网络所有服务自动加入同一内部网络服务发现可通过服务名直接访问DNS解析多网络支持一个服务可连接多个网络实现隔离注意depends_on仅控制启动顺序不等待服务就绪5.环境变量管理推荐方式使用.env文件通过env_file引用安全实践将.env加入.gitignore避免泄露敏感信息不要将敏感信息硬编码在docker-compose.yml中为不同环境准备不同的.env文件6.数据卷配置类型配置示例特点命名卷data:/app/dataDocker管理路径透明绑定挂载./app:/usr/share/nginx/html主机路径双向同步匿名卷/var/lib/mysql临时使用不推荐生产7.适用场景场景适合使用COMPOSE说明本地开发环境Web DB Cache✅快速搭建开发环境CI/CD流水线的集成测试环境✅标准化测试环境单机部署微服务原型✅简化部署流程大规模生产集群管理❌使用Kubernetes或Swarm五、Linux 基础1.Linux 概述设计灵感源自UNIX内核类型单体式内核Monolithic Kernel高安全发行版Kali Linux网络安全/渗透测试跨平台性支持多种硬件架构2.发行版组成包含内核Kernel、系统库如glibc、包管理器如apt、dnf不包含Microsoft Office商业软件3.系统架构分层应用层用户程序系统库层提供API接口Shell层命令行接口内核层直接控制硬件系统核心硬件层物理设备4.应用领域服务器与托管桌面与个人使用嵌入式系统网络安全Kali Linux六、Linux 文件与目录操作1.基本命令命令用途常用选项说明pwd显示当前工作目录的完整路径无Print Working Directorycd切换目录cd ~家目录、cd ..上级、cd -返回上次目录Change Directoryls列出目录内容-a显示隐藏文件、-l详细信息Listmkdir创建目录-p递归创建多层目录Make Directoryrmdir删除空目录无Remove Directoryrm -r递归删除非空目录-i交互确认、-f强制危险操作cat查看小文件全部内容-n显示行号大文件用lesstouch创建空文件或更新文件时间戳无已存在文件仅更新时间戳echo打印文本或创建文件 file覆盖、 file追加不能直接删除文件内容2.目录操作技巧递归创建mkdir -p a/b/c自动创建中间目录安全删除先确认路径重要数据先备份文件查看小文件用cat大文件用less支持双向滚动七、Linux 系统信息与帮助1.系统信息命令命令用途常用选项说明df -h查看磁盘使用情况-h人类可读格式Disk Freeps aux查看所有进程信息aux显示所有用户进程Process Statusuname -a查看系统内核信息-a所有信息Unix Nametop动态查看系统资源使用无实时监控systemctl管理系统服务start/stop/restart/statussystemd服务管理journalctl查看系统日志-f跟踪日志systemd日志2.帮助系统man 命令查看命令手册页按/搜索关键词按q退出支持所有已安装命令--help 选项快速查看命令帮助如ls --help3.其他工具命令grep文本搜索如grep error log.txtfind文件查找wc统计行数、字数、字节数sort排序八、Linux 文件系统与权限1.文件系统层次结构标准FHS目录主要用途示例/根目录所有目录的起点/bin系统启动必需的用户命令如ls、cp核心命令/sbin系统管理命令需root权限如reboot、fdisk管理命令/usr用户程序与数据次级层次/etc全局配置文件系统配置/home普通用户的个人目录/home/username/root系统管理员root的家目录/tmp临时文件所有用户可读写重启后通常清除临时存储/var可变数据如日志、缓存日志文件/dev设备文件块设备、字符设备硬件接口/proc虚拟文件系统提供内核与进程的实时信息系统信息/opt第三方独立软件包的安装目录第三方软件/mnt系统管理员临时挂载文件系统的目录手动挂载点/media自动挂载可移动设备如U盘、光盘自动挂载2.路径类型类型特点示例说明绝对路径以/开头位置固定/home/user/file.txt任何位置都指向同一目标相对路径不以/开头依赖当前目录./script.sh、../config/需要当前目录上下文3.特殊路径符号符号含义示例.当前目录./run.sh运行当前目录脚本..上一级目录cd ..返回上级目录~当前用户的家目录cd ~回家目录/根目录或路径分隔符/home/user4.文件权限基础三类主体所有者Owner、所属组Group、其他用户Others三种权限读r、写w、执行x权限表示符号表示-rwxr-xr-x八进制表示755rwxr-xr-x、644rw-r--r--5.目录权限特殊性权限对文件的影响对目录的影响r读取文件内容列出目录内容仅文件名w修改文件内容创建/删除/重命名目录内文件x执行文件进入目录访问文件元数据6.常用权限设置八进制值符号表示适用场景644-rw-r--r--普通文件默认权限755-rwxr-xr-x可执行文件/目录600-rw-------敏感文件如SSH私钥700-rwx------用户家目录750-rwxr-x---脚本/程序文件组用户可读执行九、Linux 包管理与服务管理1.主流包管理器发行版家族包管理器安装命令示例Debian/UbuntuAPTsudo apt install nginxRHEL/CentOS/FedoraDNF/YUMsudo dnf install nginxopenSUSEZyppersudo zypper install nginxArch/ManjaroPacmansudo pacman -S nginx2.APT常用操作# 更新软件包列表 sudo apt update ​ # 安装软件 sudo apt install package ​ # 移除软件保留配置 sudo apt remove package ​ # 完全移除包括配置 sudo apt purge package ​ # 搜索软件包 apt search keyword ​ # 查看已安装 apt list --installed3.systemctl服务管理# 启动服务 sudo systemctl start service ​ # 停止服务 sudo systemctl stop service ​ # 重启服务 sudo systemctl restart service ​ # 重载配置不重启 sudo systemctl reload service ​ # 查看状态 sudo systemctl status service ​ # 设置开机自启 sudo systemctl enable service ​ # 禁用开机自启 sudo systemctl disable service十、最佳实践与安全1.Docker 最佳实践镜像标签生产环境避免使用latest明确指定版本数据持久化优先使用Volumes生产环境开发环境可用Bind Mounts热重载敏感数据使用Docker Secrets端口管理不要暴露不必要的端口使用-p明确指定映射关系容器清理定期执行docker system prune清理未使用资源定期执行docker volume prune清理未使用卷环境变量敏感信息通过.env文件管理不硬编码2.Linux 安全实践最小权限原则只授予必要权限敏感文件适当权限设置如私钥600备份重要操作前备份数据日志监控定期检查系统日志软件更新定期更新系统和软件包3.Compose 最佳实践版本控制Compose文件加入版本控制.env文件除外多环境配置为不同环境准备不同的.env文件资源限制为服务设置CPU/内存限制健康检查配置healthcheck确保服务就绪十一、易错点总结1.Docker 相关端口映射方向-p 主机:容器不是容器:主机数据持久化容器删除后可写层数据丢失EXPOSE vs -pEXPOSE只是声明-p才是实际映射exec 限制只能在运行中的容器使用路径要求Bind Mounts必须使用绝对路径环境变量安全不要将密码等硬编码在yml文件中2.Linux 相关mkdir 递归创建多层目录必须加-prm 危险rm -r递归删除不可恢复局部变量必须显式初始化目录权限必须有x权限才能进入目录服务管理启动/停止服务需要root权限通常用sudo3.综合要点服务发现Compose中服务可通过服务名直接访问镜像标签生产环境避免latest卷管理Volumes由Docker管理Bind Mounts使用主机路径帮助系统man命令查看手册--help查看快速帮助十二、综合知识图谱Docker生态系统 ├── 容器管理 │ ├── 运行docker run [-d] [-p] [-e] [--name] │ ├── 生命周期start/stop/restart/pause │ ├── 执行exec仅运行中容器 │ └── 清理prune 系列命令 ├── 存储管理 │ ├── Volumes生产首选 │ ├── Bind Mounts开发热重载 │ ├── tmpfs内存临时存储 │ └── 容器层临时数据 ├── 网络与端口 │ ├── 端口映射-p 主机:容器 │ ├── EXPOSE声明性 │ └── 服务发现容器名/DNS └── Docker Compose ├── 多服务编排 ├── 环境变量管理env_file ├── 数据卷定义 └── 网络配置 ​ Linux系统 ├── 基础操作 │ ├── 文件操作pwd/cd/ls/mkdir/rm/cat │ ├── 文本处理grep/echo/find │ └── 系统信息df/ps/uname/top ├── 文件系统 │ ├── FHS标准目录结构 │ ├── 绝对路径 vs 相对路径 │ └── 特殊符号.、..、~、/ ├── 权限管理 │ ├── 三类主体所有者/组/其他 │ ├── 三种权限读/写/执行 │ └── 目录权限特殊性 └── 包与服务管理 ├── 包管理器APT/DNF/Zypper/Pacman └── 服务管systemctlstart/stop/enable/status

相关新闻

嵌入式系统PRCM模块详解:电源、时钟与复位管理实战指南

嵌入式系统PRCM模块详解:电源、时钟与复位管理实战指南

1. 从零开始理解PRCM:嵌入式系统的“心脏起搏器”如果你在嵌入式系统开发,尤其是基于复杂SoC(片上系统)的设计中摸爬滚打过,那么对“系统跑飞了”、“功耗下不去”、“外设唤不醒”这类问题一定不会陌生。很多时候&…

2026/7/22 16:23:34 阅读更多 →
3个实用技巧:让Sandboxie在Windows 11 24H2上重获新生

3个实用技巧:让Sandboxie在Windows 11 24H2上重获新生

3个实用技巧:让Sandboxie在Windows 11 24H2上重获新生 【免费下载链接】Sandboxie Sandboxie Plus & Classic 项目地址: https://gitcode.com/gh_mirrors/sa/Sandboxie 还记得第一次使用Sandboxie时的那种安心感吗?在沙箱中随意测试软件、浏览…

2026/7/22 16:22:34 阅读更多 →
磷酸丙糖异构酶活性检测:揭示糖酵解与光合作用碳代谢的核心枢纽

磷酸丙糖异构酶活性检测:揭示糖酵解与光合作用碳代谢的核心枢纽

磷酸丙糖异构酶(TPI)活性检测试剂盒(微量法)在能量代谢与光合生理研究中的前沿应用在细胞能量代谢的精密网络中,糖酵解途径(Glycolysis)是将葡萄糖分解为丙酮酸并产生ATP的核心通路。在这条途径…

2026/7/22 16:22:34 阅读更多 →

最新新闻

Spring、Spring Boot 与 Spring Cloud 的区别与过度构建风险

Spring、Spring Boot 与 Spring Cloud 的区别与过度构建风险

📖 阅读路径 本文按照以下逻辑展开,您可以根据自己的需求选择阅读路径: 读者类型推荐阅读路径重点关注章节初学者/概念混淆者1 → 2 → 3 → 6第2章(核心定位与区别)、第3章(关系总结)项目选型…

2026/7/22 17:09:01 阅读更多 →
【精通篇】打造React Native鸿蒙跨平台开发高级复合组件库开发系列:Cell 单元格 - 单元格为列表中的单个展示项

【精通篇】打造React Native鸿蒙跨平台开发高级复合组件库开发系列:Cell 单元格 - 单元格为列表中的单个展示项

本文是基于HarmonyOS API 24的进行的React Native跨平台技术实战项目React Native 跨端鸿蒙开发,行业简称 RNOH(React Native OpenHarmony),是社区 华为共建的适配层方案:把 Meta 的 React Native 框架完整移植到鸿蒙…

2026/7/22 17:09:01 阅读更多 →
【AI搜索工具选型黄金法则】:20年搜索架构师亲测的7大评估维度与避坑指南

【AI搜索工具选型黄金法则】:20年搜索架构师亲测的7大评估维度与避坑指南

更多请点击: https://intelliparadigm.com 第一章:AI搜索工具选型的底层逻辑与认知重构 传统搜索工具依赖关键词匹配与倒排索引,而AI搜索工具的核心跃迁在于语义理解、上下文建模与意图推理能力的融合。选型决策不应始于功能罗列或界面体验&…

2026/7/22 17:09:01 阅读更多 →
TMS320F2837xS SPI高速与三线模式配置实战与避坑指南

TMS320F2837xS SPI高速与三线模式配置实战与避坑指南

1. 项目概述 在嵌入式系统开发中,串行外设接口(SPI)是连接微控制器与各类传感器、存储器、显示屏等外设的“高速公路”。它以其全双工、高速和主从架构的简洁性,成为工程师们最信赖的通信协议之一。然而,当你面对一个需…

2026/7/22 17:09:01 阅读更多 →
AI写作进阶必修课:案例嵌入的“三阶可信度公式”(含金融/医疗/教育三大垂直领域实测模板)

AI写作进阶必修课:案例嵌入的“三阶可信度公式”(含金融/医疗/教育三大垂直领域实测模板)

更多请点击: https://codechina.net 第一章:AI写作进阶必修课:案例嵌入的“三阶可信度公式”总论 在AI辅助写作场景中,单纯依赖模型生成文本常导致事实模糊、逻辑断裂与领域失准。破解这一困局的核心,在于构建可验证、…

2026/7/22 17:09:01 阅读更多 →
Python毕业设计- 基于 Python 的居民就医预约挂号系统智慧医院线上挂号预约服务平台设计(源码+LW+部署文档+全bao+远程调试+代码讲解等)

Python毕业设计- 基于 Python 的居民就医预约挂号系统智慧医院线上挂号预约服务平台设计(源码+LW+部署文档+全bao+远程调试+代码讲解等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/22 17:08:01 阅读更多 →

日新闻

TI DSP系统配置模块SYSCFG详解:中断机制与主设备优先级配置实战

TI DSP系统配置模块SYSCFG详解:中断机制与主设备优先级配置实战

1. 项目概述与SYSCFG模块的核心价值在嵌入式系统,尤其是像TI C6000系列这样的高性能DSP开发中,我们常常会与芯片手册里那些密密麻麻的寄存器打交道。很多开发者可能更关注算法实现、内存优化或者外设驱动,但对于一个稳定、高效的系统而言&…

2026/7/22 0:00:26 阅读更多 →
微信Server酱:高到达率的应急通知方案实践

微信Server酱:高到达率的应急通知方案实践

1. 为什么我们需要"最次"的通知方案? 在数字化协作环境中,消息通知系统的重要性不言而喻明。但现实情况是,企业级通知方案往往需要复杂的API对接(如企业微信、钉钉、飞书),个人开发者的小项目又经…

2026/7/22 0:00:26 阅读更多 →
甲方要的“简洁“PPT,到底是简洁还是省事?

甲方要的“简洁“PPT,到底是简洁还是省事?

甲方说"简洁一点",乙方听到的是"少做几页"。甲方说"不要太复杂",乙方理解成"别放图表了"。结果交过去,甲方说"我说的简洁不是这个意思"。"简洁"这个词在PPT语境里,是…

2026/7/22 0:00:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 8:58:19 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/21 5:34:47 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/22 12:54:44 阅读更多 →

月新闻