惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Hacker News - Newest:
Hacker News - Newest: "LLM"
NISL@THU
NISL@THU
Know Your Adversary
Know Your Adversary
The Hacker News
The Hacker News
D
Docker
Scott Helme
Scott Helme
有赞技术团队
有赞技术团队
罗磊的独立博客
A
Arctic Wolf
P
Privacy International News Feed
Google DeepMind News
Google DeepMind News
Spread Privacy
Spread Privacy
B
Blog
A
About on SuperTechFans
L
LINUX DO - 最新话题
博客园 - 司徒正美
T
The Blog of Author Tim Ferriss
P
Proofpoint News Feed
W
WeLiveSecurity
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Google DeepMind News
Google DeepMind News
aimingoo的专栏
aimingoo的专栏
T
The Exploit Database - CXSecurity.com
美团技术团队
J
Java Code Geeks
Cloudbric
Cloudbric
雷峰网
雷峰网
Vercel News
Vercel News
P
Proofpoint News Feed
Webroot Blog
Webroot Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
人人都是产品经理
人人都是产品经理
Martin Fowler
Martin Fowler
G
Google Developers Blog
T
Tenable Blog
PCI Perspectives
PCI Perspectives
Engineering at Meta
Engineering at Meta
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
H
Hackread – Cybersecurity News, Data Breaches, AI and More
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园_首页
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Apple Machine Learning Research
Apple Machine Learning Research
C
Cybersecurity and Infrastructure Security Agency CISA
S
Secure Thoughts
N
News and Events Feed by Topic
GbyAI
GbyAI
S
SegmentFault 最新的问题
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org

博客园 - xiashengwang

Rocky Linux 9 安装docker Rocky Linux 9 与Centos区别,以及软件安装dnf命令 《Linux 基础点滴》:(17)SSH 密钥生成与管理 – 免密登录的利器 Linux服务器安全登录:从入门到实践 putty 基础 《Linux 基础点滴》:(16)firewalld 防火墙管理命令 《Linux 基础点滴》:(15)用户管理 – 创建、删除、权限与 sudo 《Linux 基础点滴》:(14)定时任务 – 用 crontab 自动化 《Linux 基础点滴》:(13)文本编辑入门 – 使用 Vim 《Linux 基础点滴》:(12)tldr – 简化版命令手册 《Linux 基础点滴》:(11)系统信息与资源监控 – 掌握服务器状态 《Linux 基础点滴》:(10)压缩与打包 – tar 的艺术 《Linux 基础点滴》:(9)查找与过滤 – find, grep, 管道 《Linux 基础点滴》:(8)网络基础 – 查看 IP、连通性与端口 《Linux 基础点滴》:(7)进程管理 – 查看与控制运行中的程序 《Linux 基础点滴》:(6)文件权限与所有者 – 保护你的文件 《Linux 基础点滴》:(5)文件与目录操作 – 增删改查必会命令 《Linux 基础点滴》:(4)磁盘空间查看 – df 和 du 的妙用 《Linux 基础点滴》:(3)Linux 文件系统概览 – 一切皆文件 《Linux 基础点滴》:(2)SSH 连接与基础命令 – 从登录到第一次操作 《Linux 基础点滴》:(1)初识 Linux 大家族 – 发行版分类与选择 docker学习(7)-docker compose 文件 docker学习(11)- 容器的日志(log) docker学习(10)-利用Github Action 自动化部署 docker学习(9)-Docker Swarm + Nginx 跨机器负载均衡 docker学习(8)-从 Windows 开发到 Linux 部署 docker学习(6)-数据持久化与网络通信 学会 Git Tag,让版本管理不再混乱 docker学习(5)-Dockerfile docker学习(4)-Docker常用命令 docker学习(3)-一个简单的例子 docker学习(2)-安装 Github 使用 Self-hosted Runner 实现服务器自动化部署 github创建分支 + Pull Request 合并 Git Rebase vs Git Merge:深入理解与实战选择 Git 系统学习教程:从零到团队协作 AI学习笔记(2)-OpenClaw安装 windbg分析dmp文件 docker desktop 和 Vmware冲突的解决办法
docker学习(1)-基本概念
xiashengwang · 2026-04-15 · via 博客园 - xiashengwang

2026-04-15 17:55  xiashengwang  阅读(9)  评论()    收藏  举报

1,Docker 主要用途和核心概念

主要用途

Docker是一个容器化平台,核心目标是一次构建,到处运行。它解决了开发与生产环境不一致的经典难题,让应用及其依赖环境打包成一个标准的单元,实现快速部署,弹性伸缩和隔离运行。

核心概念

  • 镜像: 一个制度的模版,类似于“安装光盘“。它包含了运行某个应用所需的代码、运行时、系统工具、库和设置。你可以把它理解成面向容器的“类”。
  • 容器: 镜像的运行实例,类似“安装好的系统”。它是一个轻量级、独立的可执行软件包,拥有自己的文件系统、网络和进程空间。你可以启动、停止、删除它。
  • 仓库: 存放镜像的地方,类似“软件市场”。最常用的是 Docker Hub(公共仓库),你也可以搭建私有仓库。
  • Dockerfile: 一个文本文件,包含了构建镜像的自动化指令,是 Docker 实现环境即代码的关键。

部署原则
一个容器只运行一个进程,多个容器协同工作

  1. 单一进程/单一职责: 每个容器只关注一件事。例如:
    • Web 应用容器
    • 数据库容器
    • 缓存容器
    • 消息队列容器
  2. 无状态化: 容器本身应该是“无状态”的。数据(如数据库文件、日志)必须通过 数据卷 挂载到宿主机或使用分布式存储,这样容器删除了,数据不会丢失,也方便升级和替换容器。
  3. 使用 Docker Compose 定义依赖: 对于大部分普通项目,通过 docker-compose.yml 将多个容器定义在一起,明确网络和依赖关系。

部署思路

  1. 拆分: 将项目拆解为应用代码、数据库、缓存、前端资源等逻辑单元。
  2. 基础镜像: 为每个单元选择合适的基础镜像(如 python:3.9-slim、node:18-alpine、nginx:alpine)。Alpine 版本体积很小,非常适合生产环境。
  3. 分层构建: 在 Dockerfile 中利用缓存,将变化频率低的指令(如 COPY requirements.txt + RUN pip install)放在前面,代码复制放在后面,这样能显著加快构建速度。
  4. 配置外部化: 不要将配置文件硬编码在镜像里。通过环境变量或挂载配置文件的方式注入(如 -e DB_HOST=xxx 或 docker config)。
  5. 编排运行: 对于大部分普通项目,使用 docker-compose up -d 就可以一键启动整套环境。如果项目规模更大、需要集群管理,再考虑学习 Kubernetes(k8s)