[{"content":"什么是 Docker？ Docker 是一个开源的容器化平台，可以将应用程序及其依赖项打包到一个轻量级、可移植的容器中。\n核心概念：\n镜像（Image）：容器的模板，只读 容器（Container）：镜像的运行实例 仓库（Registry）：存储和分发镜像的地方 安装 Docker Ubuntu/Debian # 更新包索引 sudo apt-get update # 安装必要依赖 sudo apt-get install -y apt-transport-https ca-certificates curl gnupg # 添加 Docker GPG 密钥 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg # 安装 Docker Engine sudo apt-get install -y docker-ce docker-ce-cli containerd.io # 验证安装 docker --version 常用命令 镜像操作 # 拉取镜像 docker pull nginx:latest # 查看本地镜像 docker images # 删除镜像 docker rmi nginx:latest # 构建镜像 docker build -t myapp:v1 . 容器操作 # 运行容器 docker run -d -p 80:80 --name mynginx nginx # 查看运行中的容器 docker ps # 查看所有容器 docker ps -a # 停止容器 docker stop mynginx # 删除容器 docker rm mynginx # 进入容器 docker exec -it mynginx /bin/bash # 查看容器日志 docker logs -f mynginx 编写 Dockerfile # 使用官方 Go 镜像作为构建环境 FROM golang:1.21-alpine AS builder WORKDIR /app COPY go.mod go.sum ./ RUN go mod download COPY . . RUN go build -o main . # 使用最小化镜像运行 FROM alpine:latest RUN apk --no-cache add ca-certificates WORKDIR /root/ COPY --from=builder /app/main . EXPOSE 8080 CMD [\u0026#34;./main\u0026#34;] Docker Compose 使用 docker-compose.yml 管理多容器应用：\nversion: \u0026#39;3.8\u0026#39; services: web: build: . ports: - \u0026#34;8080:8080\u0026#34; depends_on: - db environment: - DB_HOST=db - DB_PORT=5432 db: image: postgres:15 environment: POSTGRES_DB: mydb POSTGRES_USER: user POSTGRES_PASSWORD: password volumes: - postgres_data:/var/lib/postgresql/data volumes: postgres_data: # 启动所有服务 docker-compose up -d # 查看服务状态 docker-compose ps # 停止所有服务 docker-compose down 总结 Docker 大大简化了应用程序的部署流程：\n传统部署 Docker 部署 依赖环境配置复杂 一次构建，到处运行 环境差异导致问题 环境一致性保证 扩缩容困难 快速扩缩容 资源利用率低 资源隔离，利用率高 掌握 Docker，是现代开发者必备的技能之一！\n","permalink":"http://192.168.100.142:1313/posts/docker-quickstart/","summary":"\u003ch2 id=\"什么是-docker\"\u003e什么是 Docker？\u003c/h2\u003e\n\u003cp\u003eDocker 是一个开源的容器化平台，可以将应用程序及其依赖项打包到一个轻量级、可移植的容器中。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e核心概念：\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e镜像（Image）\u003c/strong\u003e：容器的模板，只读\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e容器（Container）\u003c/strong\u003e：镜像的运行实例\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e仓库（Registry）\u003c/strong\u003e：存储和分发镜像的地方\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"安装-docker\"\u003e安装 Docker\u003c/h2\u003e\n\u003ch3 id=\"ubuntudebian\"\u003eUbuntu/Debian\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 更新包索引\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo apt-get update\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 安装必要依赖\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo apt-get install -y apt-transport-https ca-certificates curl gnupg\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 添加 Docker GPG 密钥\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecurl -fsSL https://download.docker.com/linux/ubuntu/gpg \u003cspan class=\"p\"\u003e|\u003c/span\u003e sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 安装 Docker Engine\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo apt-get install -y docker-ce docker-ce-cli containerd.io\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 验证安装\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edocker --version\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"常用命令\"\u003e常用命令\u003c/h2\u003e\n\u003ch3 id=\"镜像操作\"\u003e镜像操作\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 拉取镜像\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edocker pull nginx:latest\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 查看本地镜像\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edocker images\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 删除镜像\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edocker rmi nginx:latest\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 构建镜像\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edocker build -t myapp:v1 .\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"容器操作\"\u003e容器操作\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 运行容器\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edocker run -d -p 80:80 --name mynginx nginx\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 查看运行中的容器\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edocker ps\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 查看所有容器\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edocker ps -a\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 停止容器\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edocker stop mynginx\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 删除容器\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edocker rm mynginx\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 进入容器\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edocker \u003cspan class=\"nb\"\u003eexec\u003c/span\u003e -it mynginx /bin/bash\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 查看容器日志\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edocker logs -f mynginx\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"编写-dockerfile\"\u003e编写 Dockerfile\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-dockerfile\" data-lang=\"dockerfile\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c\"\u003e# 使用官方 Go 镜像作为构建环境\u003c/span\u003e\u003cspan class=\"err\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e\u003c/span\u003e\u003cspan class=\"k\"\u003eFROM\u003c/span\u003e\u003cspan class=\"s\"\u003e golang:1.21-alpine AS builder\u003c/span\u003e\u003cspan class=\"err\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e\u003c/span\u003e\u003cspan class=\"k\"\u003eWORKDIR\u003c/span\u003e\u003cspan class=\"s\"\u003e /app\u003c/span\u003e\u003cspan class=\"err\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e\u003c/span\u003e\u003cspan class=\"k\"\u003eCOPY\u003c/span\u003e go.mod go.sum ./\u003cspan class=\"err\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e\u003c/span\u003e\u003cspan class=\"k\"\u003eRUN\u003c/span\u003e go mod download\u003cspan class=\"err\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e\u003c/span\u003e\u003cspan class=\"k\"\u003eCOPY\u003c/span\u003e . .\u003cspan class=\"err\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e\u003c/span\u003e\u003cspan class=\"k\"\u003eRUN\u003c/span\u003e go build -o main .\u003cspan class=\"err\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e\u003c/span\u003e\u003cspan class=\"c\"\u003e# 使用最小化镜像运行\u003c/span\u003e\u003cspan class=\"err\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e\u003c/span\u003e\u003cspan class=\"k\"\u003eFROM\u003c/span\u003e\u003cspan class=\"s\"\u003e alpine:latest\u003c/span\u003e\u003cspan class=\"err\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e\u003c/span\u003e\u003cspan class=\"k\"\u003eRUN\u003c/span\u003e apk --no-cache add ca-certificates\u003cspan class=\"err\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e\u003c/span\u003e\u003cspan class=\"k\"\u003eWORKDIR\u003c/span\u003e\u003cspan class=\"s\"\u003e /root/\u003c/span\u003e\u003cspan class=\"err\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e\u003c/span\u003e\u003cspan class=\"k\"\u003eCOPY\u003c/span\u003e --from\u003cspan class=\"o\"\u003e=\u003c/span\u003ebuilder /app/main .\u003cspan class=\"err\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e\u003c/span\u003e\u003cspan class=\"k\"\u003eEXPOSE\u003c/span\u003e\u003cspan class=\"s\"\u003e 8080\u003c/span\u003e\u003cspan class=\"err\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e\u003c/span\u003e\u003cspan class=\"k\"\u003eCMD\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;./main\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\u003cspan class=\"err\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"docker-compose\"\u003eDocker Compose\u003c/h2\u003e\n\u003cp\u003e使用 \u003ccode\u003edocker-compose.yml\u003c/code\u003e 管理多容器应用：\u003c/p\u003e","title":"Docker 快速入门指南"},{"content":"Go 并发模型简介 Go 语言从设计之初就将并发作为核心特性，其并发模型基于 CSP（Communicating Sequential Processes） 理论。\nGo 的并发哲学：\nDon\u0026rsquo;t communicate by sharing memory; share memory by communicating. 不要通过共享内存来通信，而要通过通信来共享内存。\nGoroutine Goroutine 是 Go 语言中的轻量级线程，由 Go 运行时管理。\npackage main import ( \u0026#34;fmt\u0026#34; \u0026#34;time\u0026#34; ) func worker(id int) { fmt.Printf(\u0026#34;Worker %d starting\\n\u0026#34;, id) time.Sleep(time.Second) fmt.Printf(\u0026#34;Worker %d done\\n\u0026#34;, id) } func main() { // 启动 5 个 goroutine for i := 1; i \u0026lt;= 5; i++ { go worker(i) } time.Sleep(2 * time.Second) } Channel Channel 是 goroutine 之间通信的管道：\npackage main import \u0026#34;fmt\u0026#34; func sum(s []int, c chan int) { total := 0 for _, v := range s { total += v } c \u0026lt;- total // 发送结果到 channel } func main() { s := []int{7, 2, 8, -9, 4, 0} c := make(chan int) go sum(s[:len(s)/2], c) go sum(s[len(s)/2:], c) x, y := \u0026lt;-c, \u0026lt;-c // 从 channel 接收 fmt.Println(x, y, x+y) } WaitGroup 使用 package main import ( \u0026#34;fmt\u0026#34; \u0026#34;sync\u0026#34; ) func main() { var wg sync.WaitGroup for i := 1; i \u0026lt;= 5; i++ { wg.Add(1) go func(id int) { defer wg.Done() fmt.Printf(\u0026#34;Worker %d completed\\n\u0026#34;, id) }(i) } wg.Wait() fmt.Println(\u0026#34;All workers done!\u0026#34;) } Select 语句 select 让 goroutine 可以等待多个通信操作：\npackage main import ( \u0026#34;fmt\u0026#34; \u0026#34;time\u0026#34; ) func main() { c1 := make(chan string) c2 := make(chan string) go func() { time.Sleep(1 * time.Second) c1 \u0026lt;- \u0026#34;one\u0026#34; }() go func() { time.Sleep(2 * time.Second) c2 \u0026lt;- \u0026#34;two\u0026#34; }() for i := 0; i \u0026lt; 2; i++ { select { case msg1 := \u0026lt;-c1: fmt.Println(\u0026#34;Received\u0026#34;, msg1) case msg2 := \u0026lt;-c2: fmt.Println(\u0026#34;Received\u0026#34;, msg2) } } } 总结 Go 语言的并发特性非常强大：\n特性 说明 Goroutine 轻量级协程，创建成本极低 Channel 类型安全的通信管道 Select 多路复用，监听多个 channel sync 包 提供互斥锁、WaitGroup 等同步原语 掌握这些特性，能让你写出高效、简洁的并发程序。\n","permalink":"http://192.168.100.142:1313/posts/golang-concurrency/","summary":"\u003ch2 id=\"go-并发模型简介\"\u003eGo 并发模型简介\u003c/h2\u003e\n\u003cp\u003eGo 语言从设计之初就将并发作为核心特性，其并发模型基于 \u003cstrong\u003eCSP（Communicating Sequential Processes）\u003c/strong\u003e 理论。\u003c/p\u003e\n\u003cp\u003eGo 的并发哲学：\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eDon\u0026rsquo;t communicate by sharing memory; share memory by communicating.\n不要通过共享内存来通信，而要通过通信来共享内存。\u003c/p\u003e","title":"Go 语言并发编程实战"},{"content":"欢迎来到我的博客 你好！这是我博客的第一篇文章。在这里，我将分享：\n💻 技术文章：编程技巧、框架使用、架构设计 🛠️ 工具推荐：提升效率的开发工具 📚 读书笔记：技术书籍和文章的读后感 🌱 成长记录：学习历程和心得体会 关于本博客 本博客使用 Hugo 构建，主题采用 PaperMod。\nHugo 是一个用 Go 语言编写的静态网站生成器，具有以下优点：\n极速构建 - 毫秒级别的构建速度 简单部署 - 生成纯静态文件，部署非常简单 Markdown 支持 - 使用 Markdown 撰写文章 丰富主题 - 拥有大量精美主题 代码示例 来一段 Go 代码展示一下：\npackage main import \u0026#34;fmt\u0026#34; func main() { fmt.Println(\u0026#34;Hello, World!\u0026#34;) fmt.Println(\u0026#34;欢迎来到我的博客！\u0026#34;) } 结语 希望这个博客能对你有所帮助，欢迎一起交流学习！\n","permalink":"http://192.168.100.142:1313/posts/hello-world/","summary":"\u003ch2 id=\"欢迎来到我的博客\"\u003e欢迎来到我的博客\u003c/h2\u003e\n\u003cp\u003e你好！这是我博客的第一篇文章。在这里，我将分享：\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e💻 \u003cstrong\u003e技术文章\u003c/strong\u003e：编程技巧、框架使用、架构设计\u003c/li\u003e\n\u003cli\u003e🛠️ \u003cstrong\u003e工具推荐\u003c/strong\u003e：提升效率的开发工具\u003c/li\u003e\n\u003cli\u003e📚 \u003cstrong\u003e读书笔记\u003c/strong\u003e：技术书籍和文章的读后感\u003c/li\u003e\n\u003cli\u003e🌱 \u003cstrong\u003e成长记录\u003c/strong\u003e：学习历程和心得体会\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"关于本博客\"\u003e关于本博客\u003c/h2\u003e\n\u003cp\u003e本博客使用 \u003ca href=\"https://gohugo.io/\"\u003eHugo\u003c/a\u003e 构建，主题采用 \u003ca href=\"https://github.com/adityatelange/hugo-PaperMod\"\u003ePaperMod\u003c/a\u003e。\u003c/p\u003e","title":"Hello World - 博客开篇"},{"content":"你好，我是博主 👋 一名热爱技术的程序员，专注于后端开发和云原生技术。\n技术栈 语言：Go、Python、JavaScript 框架：Gin、Django、React 数据库：MySQL、PostgreSQL、Redis DevOps：Docker、Kubernetes、GitHub Actions 云平台：AWS、阿里云 联系方式 📧 Email：blog@example.com 🐙 GitHub：github.com/example 📝 本博客：分享技术文章和生活感悟 博客初衷 记录学习历程，分享知识与经验，希望能对读者有所帮助。\n写博客对我来说是一种很好的学习方式：\n将知识整理成文字，加深理解 与他人分享，获得反馈 记录成长轨迹，回顾学习历程 欢迎一起交流技术，共同成长！🚀\n","permalink":"http://192.168.100.142:1313/about/","summary":"\u003ch2 id=\"你好我是博主-\"\u003e你好，我是博主 👋\u003c/h2\u003e\n\u003cp\u003e一名热爱技术的程序员，专注于后端开发和云原生技术。\u003c/p\u003e\n\u003ch2 id=\"技术栈\"\u003e技术栈\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e语言\u003c/strong\u003e：Go、Python、JavaScript\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e框架\u003c/strong\u003e：Gin、Django、React\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e数据库\u003c/strong\u003e：MySQL、PostgreSQL、Redis\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDevOps\u003c/strong\u003e：Docker、Kubernetes、GitHub Actions\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e云平台\u003c/strong\u003e：AWS、阿里云\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"联系方式\"\u003e联系方式\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e📧 Email：blog@example.com\u003c/li\u003e\n\u003cli\u003e🐙 GitHub：\u003ca href=\"https://github.com/\"\u003egithub.com/example\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📝 本博客：分享技术文章和生活感悟\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"博客初衷\"\u003e博客初衷\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e记录学习历程，分享知识与经验，希望能对读者有所帮助。\u003c/p\u003e","title":"关于我"}]