Docker + Nginx + Hexo 最终速查版命令清单
一、项目结构
1 2 3 4 5 6
| ~/docker-learn/ ├── hello-docker/ # Docker/Nginx 基础练习 ├── my-site/ # 最早练习用的静态网页目录 ├── nginx-conf/ # 最早练习用的 Nginx 配置 ├── hexo-blog/ # Hexo 博客项目(开发 + 生产构建) └── hexo-nginx/ # 挂载式 Nginx 发布(开发式发布)
|
二、开发环境:Hexo 本地预览
目录:
1
| cd ~/docker-learn/hexo-blog
|
启动开发环境:
查看状态:
查看日志:
1
| docker compose logs --tail 50
|
进入运行中的 Hexo 容器:
1
| docker compose exec hexo bash
|
浏览器访问:
停止开发环境:
三、Hexo 常用命令
1. 新建文章
1
| docker compose exec hexo hexo new post "文章标题"
|
或者一次性容器方式:
1
| docker compose run --rm hexo bash -lc "hexo new post '文章标题'"
|
2. 重新生成静态文件
1
| docker compose run --rm hexo bash -lc "hexo clean && hexo generate"
|
3. 查看文章目录
4. 查看生成结果
1 2
| ls public find public -maxdepth 2 -type f | head
|
四、开发式发布:Nginx 挂载 public 目录
目录:
1
| cd ~/docker-learn/hexo-nginx
|
启动挂载式发布环境:
查看状态:
查看日志:
1
| docker compose logs --tail 50
|
进入 Nginx 容器检查静态文件:
1 2
| docker exec -it hexo-nginx ls -la /usr/share/nginx/html docker exec -it hexo-nginx ls -la /usr/share/nginx/html/index.html
|
浏览器访问:
停止挂载式发布环境:
五、生产环境:多阶段构建镜像
目录:
1
| cd ~/docker-learn/hexo-blog
|
1. 手动构建生产镜像
1
| docker build -f Dockerfile.prod -t hexo-prod .
|
查看镜像:
1
| docker images | grep hexo-prod
|
2. 手动启动生产容器
1
| docker run --rm -d -p 8082:80 --name hexo-prod-test hexo-prod
|
查看运行状态:
查看日志:
1
| docker logs --tail 50 hexo-prod-test
|
检查容器内静态文件:
1
| docker exec -it hexo-prod-test ls -la /usr/share/nginx/html | head
|
浏览器访问:
删除测试容器:
1
| docker rm -f hexo-prod-test
|
六、生产环境:Compose 管理
目录:
1
| cd ~/docker-learn/hexo-blog
|
1. 启动生产环境
1
| docker compose -f docker-compose.prod.yml up -d --build
|
2. 查看状态
1
| docker compose -f docker-compose.prod.yml ps
|
3. 查看日志
1
| docker compose -f docker-compose.prod.yml logs --tail 50
|
4. 停止生产环境
1
| docker compose -f docker-compose.prod.yml down
|
5. 强制重建生产环境
1
| docker compose -f docker-compose.prod.yml up -d --build --force-recreate
|
浏览器访问:
七、日常完整工作流
场景 1:写文章并本地预览
1 2
| cd ~/docker-learn/hexo-blog docker compose up -d
|
访问:
场景 2:改完文章后生成静态文件
1 2
| cd ~/docker-learn/hexo-blog docker compose run --rm hexo bash -lc "hexo clean && hexo generate"
|
场景 3:查看挂载式发布结果
1 2
| cd ~/docker-learn/hexo-nginx docker compose up -d
|
访问:
场景 4:更新生产环境
1 2
| cd ~/docker-learn/hexo-blog docker compose -f docker-compose.prod.yml up -d --build
|
访问:
八、最常用排错命令
1. 看容器是否在运行
1 2 3
| docker ps docker compose ps docker compose -f docker-compose.prod.yml ps
|
2. 看日志
1 2 3
| docker logs 容器名 docker compose logs --tail 50 docker compose -f docker-compose.prod.yml logs --tail 50
|
3. 进入容器
1 2
| docker exec -it 容器名 bash docker compose exec hexo bash
|
4. 看端口占用
重点看类似:
1 2 3
| 0.0.0.0:4000->4000/tcp 0.0.0.0:8081->80/tcp 0.0.0.0:8082->80/tcp
|
5. 如果报端口冲突
删除旧容器:
6. 检查挂载目录是否正确
宿主机查看:
1 2
| ls -la ~/docker-learn/hexo-blog/public ls -la ~/docker-learn/hexo-blog/public/index.html
|
容器里查看:
1 2
| docker exec -it hexo-nginx ls -la /usr/share/nginx/html docker exec -it hexo-nginx ls -la /usr/share/nginx/html/index.html
|
7. 检查 Nginx 配置语法
1
| docker exec -it my-nginx nginx -t
|
8. 重载 Nginx 配置
1
| docker exec -it my-nginx nginx -s reload
|
九、当前几个地址的意义
开发预览
用途:
挂载式发布
用途:
- Nginx 直接挂载
public/
- 开发式发布验证
生产式发布
用途:
十、当前几个核心文件的作用
hexo-blog/docker-compose.yml
开发环境 compose 文件
hexo-blog/Dockerfile
开发镜像 Dockerfile(my-hexo)
hexo-blog/Dockerfile.prod
生产镜像多阶段构建文件
hexo-blog/docker-compose.prod.yml
生产环境 compose 文件
hexo-nginx/docker-compose.yml
挂载式 Nginx 发布配置
十一、几个关键概念一句话版
Docker
负责管理环境、镜像、容器。
Hexo
负责把 Markdown 文章生成成静态网页。
Nginx
负责把静态网页提供给浏览器访问。
bind mount
把宿主机目录直接映射进容器。
named volume
让 Docker 管理某个数据目录。
Dockerfile
定义“镜像怎么构建”。
multi-stage build
第一阶段构建,第二阶段运行,适合生产环境。
十二、一句话总总结
Hexo 生成网页,Nginx 提供网页,Docker 管理运行环境。