背景
周末2天开了,GitHub上的某个开源项目,更新很频繁,node.js项目。源码看起来很牛,本来想研究下的,时间问题放弃了,能用就好了。但发现部署比较麻烦,服务器上还得node 20版本以上,我的centos 7带不了。最终看到有个docker字样,但奇怪的是,不能pull啊,但有个docker-compose.yml,参考项目给出的提示,一步一步用docker部署起来了。感觉还是比较方便的,在此记录一下。
基本认识
Docker Compose:它是 Docker 官方提供的一个工具,解决了 "手动逐个启动多个关联容器" 的痛点(比如一个 Web 应用需要搭配数据库、缓存、Redis 等多个容器)。而 docker-compose.yml 就是告诉 Compose 工具 "要启动哪些容器、每个容器怎么配置" 的 "说明书"。
docker-compose.yml :这个文件采用 YAML 格式(语法简洁,靠缩进和键值对组织),核心结构包含 3 个关键层级:
-
version:指定 Compose 文件的版本(需和 Docker Compose 版本兼容,常用 3.x);
-
services:定义所有需要运行的容器(服务),是文件的核心;
-
volumes/networks(可选):定义共享数据卷、自定义网络,用于容器间通信 / 数据持久化。
在参考的项目中:
bash
services:
xxxxxx_name:
build:
context: .
dockerfile: core/Dockerfile
container_name: xxxxxx_name
restart: unless-stopped
environment:
ADMIN_PASSWORD: admin
TZ: Asia/Shanghai
ports:
- "8080:8080"
volumes:
- ./data:/app/core/data
其中最关键是docker内部需要干嘛,对应的文件如下:
dockerfile: core/Dockerfile
这里面就是放了一些docker命令

在docker内部install啥的。
使用方法也比较简单:
bash
# 构建并后台启动
docker compose up -d --build
# 查看日志
docker compose logs -f
# 停止并移除容器
docker compose down