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

相关笔记