【第10期】Docker 基础实战:镜像、容器、端口、卷和日志到底是什么
【第10期】小蓝伞的 Docker 基础实战镜像、容器、端口、卷、网络和日志一次讲透系列《从小白到 AI 大模型开发工程师的进阶之路》技术点AI-0010 Docker 基础主人公小蓝伞先说结论Docker 不是“把程序压缩成一个文件”而是用镜像描述运行环境用容器启动隔离进程用端口暴露服务用卷保存容器之外仍需保留的数据。掌握这四句话就能读懂大多数 Docker 入门命令。本文假设 Docker Desktop 已经可用。以下命令是学习示例请在自己的开发环境中执行并验证不要把示例输出当作已经在你的电脑上实测成功。一、镜像和容器到底差在哪概念正确理解常见误解镜像 image只读、分层的运行模板镜像本身就是正在运行的程序容器 container从镜像启动的运行实例删除容器也不会影响其中数据端口映射宿主机端口转发到容器端口容器端口会自动对外公开卷 volumeDocker 管理的持久化存储容器文件天然永久保存镜像像菜谱容器像按菜谱做出来的一盘菜端口是餐厅窗口卷是不会随盘子一起倒掉的仓库。小蓝伞提醒盘子可以重做仓库的数据不能靠运气保存。Docker 客户端把命令交给 Docker daemondaemon 负责拉取镜像、创建容器、配置网络和存储。理解这条链路后遇到问题就能区分是命令端、镜像、容器进程还是网络出了问题。二、最小实践运行一个 Nginx 服务docker version docker pull nginx docker image ls docker run --name hello-nginx -d -p 8080:80 nginx docker ps docker port hello-nginx Invoke-WebRequest http://localhost:8080 -UseBasicParsing | Select-Object -ExpandProperty StatusCode-d表示后台运行--name固定容器名-p 8080:80表示把宿主机 8080 转发到容器内监听的 80。若最后返回200才说明服务进程、端口映射和 HTTP 访问三者都已打通。为什么不只看docker ps容器在运行只能证明主进程没有退出并不能证明应用端口可访问。为什么不只在浏览器看页面浏览器缓存、代理和跳转也可能干扰判断。命令行状态码是更可重复的验证方式。三、容器生命周期先查状态再查日志docker ps docker ps -a docker logs --tail 100 hello-nginx docker inspect hello-nginx docker stop hello-nginx docker start hello-nginx docker restart hello-nginxdocker ps只显示运行中容器已退出容器要用docker ps -a找。服务访问失败时按“容器是否存在 → 是否运行 → 日志是否报错 → 端口是否映射 → 应用是否监听”的顺序排查远比重装 Docker 更有效。进入容器应主要用于检查docker exec -it hello-nginx sh cat /etc/os-release exit不建议把手工改容器内部文件当作部署方案。容器重建后修改通常会消失可重复的改动应写进 Dockerfile需保留的数据应写进卷。四、卷容器删了数据还能不能在下面用 Nginx 首页验证命名卷的持久化。请先确保 8081 未被占用。docker volume create nginx-html docker run --name nginx-volume -d -p 8081:80 -v nginx-html:/usr/share/nginx/html nginx docker exec nginx-volume sh -c echo hello from volume /usr/share/nginx/html/index.html Invoke-WebRequest http://localhost:8081 -UseBasicParsing | Select-Object -ExpandProperty Content docker rm -f nginx-volume docker run --name nginx-volume-2 -d -p 8081:80 -v nginx-html:/usr/share/nginx/html nginx Invoke-WebRequest http://localhost:8081 -UseBasicParsing | Select-Object -ExpandProperty Content第二个容器仍能看到页面才证明数据放进了卷而不是容器可写层。卷适合数据库、向量索引和模型缓存临时数据是否持久化要按恢复要求决定。docker volume rm nginx-html是不可逆清理动作删除前先确认不含重要数据。命名卷与绑定挂载怎么选命名卷由 Docker 管理跨环境迁移更明确适合服务数据绑定挂载把宿主机目录映射进去适合本地开发时把代码实时提供给容器。Windows 路径挂载尤其需要验证权限和共享设置不能照搬 Linux 路径。五、网络、日志与重启策略默认 bridge 网络允许容器联网但容器里的localhost指向容器自己不是宿主机也不是另一个容器。多个服务协作时应创建自定义网络用容器名作为服务地址docker network create ai-demo-net docker run --name demo-nginx --network ai-demo-net -d nginx docker network inspect ai-demo-net docker logs --tail 100 demo-nginx服务日志优先输出到标准输出和标准错误docker logs才能成为第一排查入口。长期服务可考虑--restart unless-stopped但重启策略不等于健康检查也不能替代监控和告警。六、五类高频故障端口被占用执行Get-NetTCPConnection -LocalPort 8080 -ErrorAction SilentlyContinue换宿主机端口或停止明确确认过的占用进程。容器名冲突docker ps -a找到旧容器确认数据已持久化后删除或使用新名称。容器秒退先看docker ps -a再看docker logs 容器名不要只看镜像是否下载成功。数据丢失检查是否使用卷或绑定挂载只依赖容器可写层不适合保存重要数据。镜像拉取失败检查网络、镜像标签和仓库权限不要把来路不明的镜像源写进团队配置。七、面试题1. 镜像和容器的关系镜像是只读模板容器是镜像启动后的实例同一镜像可以启动多个容器。2.-p 8080:80如何理解宿主机 8080 映射到容器 80容器应用仍监听 80外部访问宿主机 8080。3. 为什么需要卷容器生命周期短卷把数据放到独立存储中支持重建和升级后继续使用。4.docker stop与docker rm区别stop停止主进程rm删除容器元数据和可写层删除前必须确认数据已持久化。5. 容器内localhost指向哪里指向当前容器自身不等于宿主机或其他容器。八、本期小结Docker 的价值不在于让命令变多而在于明确“运行环境、服务生命周期、网络边界和数据归属”。下一期学习 WSL2 与 Docker Desktop解释 Windows、Linux 子系统和 Docker 引擎之间的边界。点个关注不迷路继续跟着小蓝伞把 AI 开发环境搭得既能跑、又可复现。工具让启动更快理解让系统更稳每一次认真验证都是从小白走向 AI 工程师的一小步。官方资料DockerWhat is a container?DockerVolumesDockerNetworking overviewDocker CLI reference

相关新闻

`import pywintypes` 是 Python 中引入 `pywintypes` 模块的语句,这个模块是 **Python for Windows Extensions(即 pywin32

`import pywintypes` 是 Python 中引入 `pywintypes` 模块的语句,这个模块是 **Python for Windows Extensions(即 pywin32

import pywintypes 是 Python 中引入 pywintypes 模块的语句,这个模块是 Python for Windows Extensions(即 pywin32 库) 的核心组成部分,仅适用于 Windows 系统,主要用于提供 Windows API 交互所需的基础类型定义、错…

2026/11/14 1:27:20 阅读更多 →
水域救援割绳刀怎么选?看懂性能参数,选对靠谱生产厂家

水域救援割绳刀怎么选?看懂性能参数,选对靠谱生产厂家

结论先行:水域救援割绳刀是体积最小、却直接关系生死的应急装备,国内选型已有清晰的参数共识:刀刃硬度不低于48HRC(按GB/T 230.1洛氏硬度方法检测)、平头钝头防刺伤刀型加齿形割绳刃、湿手单手操作的防滑手柄、刀鞘牢固…

2026/10/28 19:45:21 阅读更多 →
谁在偷偷看你的位置?安卓手机应用行为记录一键查询

谁在偷偷看你的位置?安卓手机应用行为记录一键查询

位置信息是核心隐私数据。Android 15新增应用行为记录功能,让用户清晰查看所有应用访问位置信息的记录,精准识别频繁访问的应用。本文解析原理、查看步骤、优化技巧及故障排查。一、核心逻辑与风险应用通过调用系统位置API获取位置信息。Android 15收紧权…

2026/11/11 19:47:02 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/13 5:13:25 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/13 5:13:25 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/13 5:13:25 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/13 22:08:41 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/12 18:22:25 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/13 5:13:25 阅读更多 →

日新闻

周新闻

月新闻