菜单
关于 服务 历程 与我合作
代表 Docker 容器的货运集装箱
科技 2月 26, 2026 • 10分钟阅读

Docker 与容器:给所有人的'开箱即用'指南

把 Docker 讲清楚。了解什么是容器、为什么它们无处不在,以及如何在 Raspberry Pi 上用 Portainer 搭建自己的家庭实验室。

分享:
Lee Foropoulos

Lee Foropoulos

10分钟阅读

想象一下:你下载了一个应用。它不能运行,因为你的 Python 版本不对。或者 Java。或者某个你从来没听说过的库。你花了三个小时试图修复,最后放弃了,开始质疑人生。

容器解决了这个问题。 它们让"在我的机器上能跑"不再是软件开发中可以接受的借口。而且容器不只是给开发者用的。任何运行家庭服务器的人、玩家庭自动化的人,或者只是受够了软件安装噩梦的人,都能从中受益。

容器到底是什么?

把容器想象成货轮上的集装箱。里面装的是汽车、香蕉还是 IKEA 家具都不重要,集装箱是标准尺寸,能装上任何船、卡车或火车。货物不关心运载它的交通工具。

软件容器的工作方式完全一样。它们把应用和运行所需的一切打包在一起:代码、库、设置、依赖。全部。然后这个容器在你的笔记本、云服务器或者壁橱里的 Raspberry Pi 上都能一模一样地运行。

港口的集装箱
集装箱标准化了全球贸易。软件容器标准化了部署。

容器 vs 虚拟机

"等一下,"你说,"虚拟机不就是干这个的吗?"某种程度上是,但容器的效率高得多。

虚拟机运行一个完整的操作系统。如果你想跑三个应用,你可能得启动三个虚拟机,每个都有自己的 Windows 或 Linux 副本。这是很大的开销:几个 GB 的重复操作系统文件,全部同时运行。

容器共享宿主操作系统的内核。它们只打包应用和它特定的依赖。三个容器可能总共只用 300MB 而不是 30GB。启动时间是几秒而不是几分钟。轻量、快速、用完即弃。

300MB vs 30GB
Containers use roughly 100x less storage than equivalent virtual machines by sharing the host OS kernel.

类比

虚拟机 = 独立的房子,每个都有自己的地基、管道和电气系统。 容器 = 一栋楼里的公寓,共享基础设施但有私人空间。

Docker 登场:容器标准

Docker 没有发明容器,但它让普通人也能用上容器。在 Docker(2013 年发布)之前,容器就存在了,但配置起来很痛苦。Docker 给了我们简单的命令、标准的格式,以及至关重要的 Docker Hub,一个庞大的预构建容器镜像库。

想跑 WordPress?有现成的容器。需要数据库?从 MySQL、PostgreSQL、MongoDB 里选,都是一条命令的事。用 Home Assistant 做家庭自动化?游戏服务器?密码管理器?VPN?全都容器化好了,开箱即用。

# Pull and run a web server in one command
docker run -d -p 80:80 nginx

# That's it. You now have a web server running.

你为什么应该关心?

除非你是开发者,否则你可能会想这些跟你有什么关系。关键在这里:容器已经从开发者的世界里跑出来了,现在是在家庭服务器上运行软件最简单的方式。

容器不只是开发者的潮流;它们是可靠运行软件最简单的方式。

给开发者

  • 一致的环境: 开发环境与生产环境完全匹配
  • 轻松入职: 新团队成员?docker-compose up 就能跑起来
  • 微服务: 把应用拆成小的独立服务,分别扩展
  • CI/CD 流水线: 构建一次,部署到任何地方

给家庭实验室爱好者

  • 一台机器跑几十个服务: 没有冲突,没有依赖地狱
  • 轻松更新: 拉取新镜像,重启容器,搞定
  • 可移植性: 复制一个配置文件就能把整个环境迁移到新硬件
  • 隔离性: 一个应用崩了,不会拖垮其他的

给基础设施

服务器机房基础设施
容器驱动着从家庭实验室到企业数据中心的一切

Portainer:让 Docker 变简单

"但我不想背命令行语法。"完全理解。来认识一下 Portainer

Portainer 是一个基于 Web 的 GUI,用来管理 Docker 容器。不用敲命令,点按钮就行。你可以看到所有正在运行的容器、查看日志、管理网络、部署新应用,全在浏览器里完成。

安装它?也是一条命令:

docker run -d -p 9000:9000 \
  --name portainer \
  --restart=always \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v portainer_data:/data \
  portainer/portainer-ce

打开 http://localhost:9000,创建管理员账号,你就可以用一个漂亮的界面管理容器了。不需要终端(第一条命令之后)。

我为什么喜欢 Portainer

  • 所有运行中服务的可视化概览
  • 一键访问容器日志
  • 轻松管理环境变量
  • 一键部署的应用模板
  • 从一个界面管理多个 Docker 主机

热门家庭实验室容器

下面是大家在家庭实验室里实际运行的东西。全部可以在 Docker Hub 上一条命令安装:

家庭自动化

  • Home Assistant - 家庭自动化之王。控制灯光、恒温器、摄像头,一切。
  • Node-RED - IoT 自动化流程的可视化编程
  • Mosquitto - IoT 设备通信的 MQTT 代理

媒体与娱乐

生产力与安全

在 Raspberry Pi 上运行 Docker

有趣的来了:你可以在 35 美元的 Raspberry Pi 上跑这一切。4GB 或 8GB 内存的 Pi 4 是出色的家庭服务器,功耗极低,同时运行十几个容器。

设置步骤

  1. 把 Raspberry Pi OS Lite(64位)刷到 SD 卡,使用 Raspberry Pi Imager
  2. 启动并 SSH 连接: ssh [email protected]
  3. 更新系统: sudo apt update && sudo apt upgrade -y
  4. 安装 Docker:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
# Log out and back in
  1. 安装 Docker Compose: sudo apt install docker-compose -y
  2. 安装 Portainer(上面的命令)然后开始部署!
Raspberry Pi 电脑
一个 Raspberry Pi 一年大约 5 美元的电费就能运行你的整个家庭实验室

Pi 性能小贴士

  • 用 USB 接 SSD 代替 SD 卡,速度更快寿命更长
  • 买个带风扇的外壳,容器可能会给 CPU 加压
  • 需要更多余量的话 Pi 5 快很多
  • LinuxServer.io 看 ARM 优化的容器镜像

Docker Compose:管理多个容器

当你运行的容器超过几个时,逐个管理就变得很烦。这时候就该 Docker Compose 登场了。你在一个 YAML 文件里定义所有容器:

# docker-compose.yml
version: '3'
services:
  pihole:
    image: pihole/pihole
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "80:80/tcp"
    environment:
      TZ: 'America/New_York'
    restart: unless-stopped

  homeassistant:
    image: homeassistant/home-assistant
    ports:
      - "8123:8123"
    volumes:
      - ./homeassistant:/config
    restart: unless-stopped

  portainer:
    image: portainer/portainer-ce
    ports:
      - "9000:9000"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    restart: unless-stopped

然后一条命令启动所有:docker-compose up -d

你的整个设置现在有了版本控制、可移植、可复现。要迁移到新硬件?复制 compose 文件和数据卷。搞定。

开始行动:你的第一个周末项目

别想着一个周末把整个生活都容器化。从小做起:

  1. 安装 Docker(在你的机器或者一个备用 Pi 上)
  2. 运行 Portainer(可视化界面)
  3. 部署 Pi-hole(全网广告拦截,立竿见影的效果)
  4. 添加 Uptime Kuma(监控你的服务)
  5. 升级到 Docker Compose(当你有 3 个以上容器时)

从那以后,兔子洞想多深就多深。家庭自动化。媒体服务器。所有东西都自托管。容器生态系统庞大且还在增长。

周末 Docker 项目计划 0/5

"开始学习容器的最佳时机是五年前。第二好的时机是这个周末。"

深入学习的资源

结语

容器不只是开发者的潮流,它们是可靠运行软件最简单的方式。一旦你理解了这个概念(标准化的包,到哪里都能跑),剩下的就是学习工具而已。

Docker 给你引擎。Portainer 给你仪表盘。Raspberry Pi 给你一个便宜的试验场。而社区已经把你想运行的几乎所有东西都容器化了。

所以别再在人们提到容器的时候假装听懂了。这个周末启动 Portainer,部署点有用的东西,带着真实经验加入对话。

未来的你,那个不用在半夜调试依赖冲突的你,会感谢现在的你。

How was this article?

分享

Link copied to clipboard!

You Might Also Like

Lee Foropoulos

Lee Foropoulos

Business Development Lead at Lookatmedia, fractional executive, and founder of gotHABITS.

🔔

Bu cuoguo renhe wenzhang

Xin wenzhang fabu shi huoqu tongzhi. Wu xu dianzi youjian.

You xinwenzhang shi ninjianghui kandao wangzhan banner he liulanqi tongzhi (xu yunxu).

Jin liulanqi tongzhi. Wu laji youjian.