docker部署 必会清单
按知识点 + 关键命令 + 常见文件说明组织,能让你从 GitHub 拉取项目到用 Docker 在 Windows / 私有云 / NAS 上快速部署并排查问题。
一、必须掌握的基础知识(核心概念)
Git 基础:仓库、分支、commit、pull、clone、checkout、merge、remote、SSH key / PAT。
Docker 基础:镜像(image)、容器(container)、镜像构建(Dockerfile)、容器运行(run)、端口映射、卷(volumes)、网络(network)、环境变量。
Docker Compose:定义多容器应用(docker-compose.yml),服务之间依赖、卷和网络管理。
Linux 基础命令与权限:ssh、scp、systemctl、用户/组、文件权限、ufw/iptables(部署到服务器必备)。
Windows 特殊点:推荐用 WSL2 + Docker Desktop 或 Docker Desktop 自带的 Linux 后端;Git 可用 Git for Windows / Git Bash。
持久化与备份:理解 bind mount vs named volume、数据备份策略(数据库与配置)。
简单排错能力:查看日志、进入容器、查看端口与进程、查看镜像与容器状态。
安全与凭证管理:不要把密码/密钥放在仓库,使用 .env 或 secret 管理,设置合适权限与重启策略。
二、必须会用的常用命令(最少记住这些)
Git:git clone <url> ; git pull ; git checkout <branch> ; git branch ; git status
Docker:docker build -t imagename . ; docker images ; docker run -d -p host:container --name name imagename ; docker ps ; docker logs -f CONTAINER ; docker exec -it CONTAINER /bin/sh
Docker Compose:docker-compose up -d --build ; docker-compose down ; docker-compose logs -f ; docker-compose ps
服务器:ssh user@host ; sudo usermod -aG docker $USER (把用户加到 docker 组)
三、关键文件与它们的重要性(能看懂这些文件就够快部署)
Dockerfile:定义如何构建镜像,入口点、依赖、端口、工作目录都在这里。若项目没有镜像,必须读懂或改它。
docker-compose.yml:多容器应用的编排(服务、端口映射、卷、环境变量、依赖顺序)。一键启动的重要文件。
.env:环境变量文件(数据库密码、端口等),docker-compose 会读取。不要把 .env 中的 secret 提交到仓库。
.dockerignore:构建镜像时要排除的文件(加速构建,保护敏感文件)。
README / Docs:启动步骤、所需环境、端口、依赖服务(最重要的指引)。
entrypoint.sh / start scripts:容器启动时执行的脚本(初始化、迁移、权限修正等)。
配置文件(config.yml/.json/.env.example):应用运行所需的配置示例,通常需要调整为你的环境。
数据库迁移脚本(migrations):第一次部署时初始化数据库用。
.gitignore:避免提交 node_modules、.env、日志等不必要或敏感文件。
四、在不同环境的注意点(快速要点)
Windows(开发机)
推荐:启用 WSL2,安装 Docker Desktop,使用 Git Bash/WSL 中的 git。
注意文件共享性能(Windows↔WSL 文件系统),大项目建议把代码放在 WSL 的 Linux 文件系统内。
私有云服务器(一般是 Linux)
安装 Docker Engine、Compose(或使用 Docker Compose v2 插件)。开放必要端口,配置防火墙。
建议用 systemd/service 或 docker-compose + cron 来保证服务随机器重启自动恢复。
使用 SSH key 登录并把仓库拉到服务器上,或在 CI 上构建并推到私有 registry。
NAS(如你把 NAS 当数据盘)
最好把 NAS 挂载到主机(NFS/SMB)并在 docker-compose 中挂载到容器卷。注意权限和性能(NFS 更稳定)。
有些 NAS(Synology/QNAP)自带 Docker GUI,可直接用,但更灵活的是在你的服务器上把 NAS 当作存储使用。
避免把数据库数据放在不支持 fsync 的网络盘上(数据一致性风险)。
五、常见排查步骤(遇到问题先按这流程)
git 仓库先确认最新:git pull;检查分支是否正确。
构建失败:看 Dockerfile,检查 .dockerignore、基础镜像、依赖是否安装。
容器无法访问:docker ps 查看端口映射;docker logs 查日志;docker exec 进入容器看服务状态。
权限问题:检查宿主机挂载目录的 UID/GID,与容器内运行用户匹配。
数据不持久:确认 docker-compose 中有 volume 映射且路径正确。
端口冲突:查看宿主机已有进程(ss -tuln),修改映射端口。
六、快速部署最简流程(一步到位的流程)
在本地/服务器上:git clone <repo_url>
查看 README、.env.example,复制并填写 .env(或在 docker-compose.yml 中设置 env)
若项目带 Dockerfile:docker build -t app . 或直接 docker-compose up -d --build
启动:docker run ... 或 docker-compose up -d
检查:docker ps ; docker-compose logs -f ; 访问映射端口测试
遇到问题按“排查步骤”定位并修正
七、小贴士(避免常犯错误)
不要把密码/密钥直接放在仓库,使用 .env + gitignore 或秘密管理。
初学时优先使用官方镜像或项目自带的 docker-compose 模板,复用成熟配置。
常用命令放到 README 或脚本中(start.sh/docker-compose.yml),方便复现。
在生产用私有云前先在本地或小的 VM 上完整跑通一次。
如果你愿意,我可以根据你要部署的具体仓库(给出 GitHub 链接)帮你逐条指引:哪些文件需要修改、如何写 .env、如何在 Windows/服务器/NAS 上做卷挂载与权限设置,以及常见的 1-2 个调试命令。需要的话把链接发来。