下面以腾讯云轻量应用服务器(LTS)为例,分步骤说明:安装 Docker → 拉取/构建镜像 → 部署项目。示例基于 Ubuntu 22.04 LTS(CentOS 8/9 思路类似,命令略有差异)。
一、登录服务器并准备环境
-
通过 SSH 登录轻量应用服务器
ssh root@<你的公网IP> # 或使用你设置的普通用户 + sudo -
更新系统包(推荐)
apt update && apt upgrade -y # Ubuntu/Debian # 或 yum update -y # CentOS/RHEL -
开放必要端口(在腾讯云控制台“安全组”中配置)
例如:- 22(SSH)
- 80 / 443(Web)
- 项目自定义端口(如 3000、8080 等)
- 如需远程访问 Docker 管理面板,再单独开相应端口(不推荐直接暴露)
二、安装 Docker
方式一:使用官方脚本(推荐,简单快捷)
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
如果网络慢,可换为其他镜像源或手动安装(见下方方式二)。
安装完成后启动并设置开机自启:
systemctl enable --now docker
docker version
方式二:手动安装(Ubuntu 示例)
apt install -y ca-certificates curl gnupg lsb-release
# 添加 Docker 官方 GPG 密钥
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg |
gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg
# 添加 Docker 仓库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg]
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" |
tee /etc/apt/sources.list.d/docker.list > /dev/null
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
systemctl enable --now docker
docker version
三、验证 Docker 运行正常
docker run hello-world
若看到欢迎信息,则 Docker 安装成功。
四、将项目部署到 Docker
假设你的项目是:
- 后端:Node.js / Java / Go 等
- 前端:Vue / React 等静态资源或 SSR
下面以常见场景举例。
场景 A:已有 Dockerfile 的项目
1. 上传项目代码到服务器
本地打包后上传,或用 scp / git clone:
# 示例:从 Git 克隆
cd /root
git clone <你的项目仓库地址>
cd <项目目录>
或在本地打包后:
scp -r ./project-root root@<你的公网IP>:/root/project
2. 编写 Dockerfile(若没有)
以 Node.js 项目为例(Dockerfile 放在项目根目录):
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]
Java Spring Boot 示例:
FROM openjdk:17-jdk-slim
WORKDIR /app
COPY target/*.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]
3. 构建镜像
docker build -t my-project:latest .
4. 运行容器
docker run -d
--name my-project
-p 3000:3000 # 宿主机端口:容器端口
-v /data/my-project/logs:/app/logs
my-project:latest
常用参数说明:
-d:后台运行--name:容器名称-p:端口映射-v:挂载卷(日志、数据等)
查看运行状态:
docker ps
docker logs -f my-project
场景 B:使用 docker-compose 部署(多服务更推荐)
在项目目录下创建 docker-compose.yml,例如:
version: "3.8"
services:
web:
build: .
ports:
- "3000:3000"
volumes:
- ./logs:/app/logs
environment:
- NODE_ENV=production
restart: always
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: your_root_password
MYSQL_DATABASE: mydb
volumes:
- mysql_data:/var/lib/mysql
restart: always
volumes:
mysql_data:
启动:
docker compose up -d
# 或旧版本:
# docker-compose up -d
查看日志:
docker compose logs -f
停止/重启:
docker compose down
docker compose up -d
五、配置反向X_X(Nginx)——可选但推荐
让域名访问更规范,支持 HTTPS。
- 安装 Nginx:
apt install -y nginx
# 或
yum install -y nginx
- 编辑配置文件
/etc/nginx/sites-available/default或新建/etc/nginx/conf.d/myapp.conf:
server {
listen 80;
server_name example.com www.example.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
- 测试并重载:
nginx -t
systemctl reload nginx
如需 HTTPS,可使用 Let’s Encrypt(certbot)自动申请证书。
六、常见问题与优化建议
-
权限问题
- 避免直接用 root 运行业务容器,可创建专用用户。
- 挂载卷时注意文件权限:
chown -R 1000:1000 /data/my-project/logs等。
-
内存不足
轻量服务器通常内存较小,注意:- 限制容器资源:
--memory=512m --cpus=0.5 - 关闭不必要的服务,只保留核心组件。
- 限制容器资源:
-
日志清理
在docker-compose.yml中配置日志驱动和大小限制:logging: driver: json-file options: max-size: "10m" max-file: "3" -
备份与恢复
- 定期备份数据库(mysqldump / pg_dump)。
- 备份重要配置文件和挂载卷数据。
如果你能提供:
- 操作系统版本(Ubuntu/CentOS?)
- 项目类型(Node/Java/Go/PHP?前后端是否分离?)
- 是否需要数据库、Redis 等中间件
我可以给出一份针对你项目的完整 Dockerfile + docker-compose.yml 示例及部署命令。
CLOUD云枢