Docker 入门
Docker 是一个容器化平台,让你可以用统一的方式部署和运行软件。
为什么用 Docker
- 环境一致性:在任何机器上运行结果都一样
- 部署简单:一条命令启动服务,不用手动装依赖
- 隔离性:各个服务互不干扰
- 易管理:Docker Compose 一键管理所有服务
核心概念
| 概念 | 说明 |
|---|---|
| 镜像 (Image) | 软件的模板,相当于”安装包” |
| 容器 (Container) | 镜像运行起来的实例,相当于”运行中的程序” |
| Dockerfile | 定义如何构建镜像的脚本 |
| docker-compose.yml | 定义多容器应用的配置文件 |
| Volume | 持久化数据,容器删了数据还在 |
我常用的命令
# 启动所有服务(后台运行)
docker compose up -d
# 查看运行中的容器
docker ps
# 查看所有容器(包括已停止)
docker ps -a
# 查看容器资源占用
docker stats
# 查看容器日志
docker logs <容器名>
# 重启某个容器
docker compose restart <服务名>
# 更新镜像并重启
docker compose pull && docker compose up -d
我的 Docker Compose 结构
我的所有服务都通过一个 docker-compose.yml 管理,位于 ~/homelab/ 目录。包含 自托管服务 中列出的所有服务。
典型的 docker-compose.yml 片段
services: memos: image: neosmemo/memos:stable container_name: memos restart: unless-stopped ports: - "5230:5230" volumes: - ./memos-data:/var/opt/memos