香港VPS Linux:Docker Compose多容器编排实战
在香港VPS的Linux主机上部署多容器应用时,Docker Compose是简化编排管理的核心工具。本文通过一个实际的Web应用栈搭建案例,手把手教你从环境准备到容器启动的全流程操作。

环境准备:确认工具链状态
使用香港VPS前需确保已安装Docker和Docker Compose。登录主机后,通过以下命令验证安装情况:
docker --version
docker-compose --version
若提示"command not found",可通过Docker官网提供的脚本快速安装(如Ubuntu系统执行`curl -fsSL https://get.docker.com | sh`)。安装完成后,建议将当前用户加入docker组(`sudo usermod -aG docker $USER`),避免后续操作需要sudo权限。
实战案例:Nginx+Flask Web应用栈搭建
本案例以最常见的Web服务组合为例,演示如何通过Docker Compose管理Nginx反向代理和Flask应用容器。
步骤1:创建标准化项目结构
登录香港VPS后,通过SSH在/home目录下创建项目文件夹`web_app_stack`,内部结构需严格遵循:
web_app_stack/
├── app/ # Flask应用目录
│ ├── app.py # 核心业务代码
│ └── requirements.txt # Python依赖清单
├── nginx/ # Nginx配置目录
│ └── nginx.conf # 反向代理配置
└── docker-compose.yml # 容器编排文件
步骤2:编写轻量Flask应用
在`app/app.py`中写入基础路由逻辑:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, 香港VPS容器化部署!'
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000) # 监听所有接口的5000端口
`requirements.txt`仅需声明Flask依赖:
flask==2.0.1
步骤3:配置Nginx反向代理
`nginx/nginx.conf`需定义请求转发规则:
server {
listen 80; # 监听主机80端口
server_name _;
location / {
proxy_pass http://app:5000; # 转发至app服务的5000端口(服务名自动解析)
proxy_set_header Host $host; # 保留原始请求头信息
proxy_set_header X-Real-IP $remote_addr;
}
}
步骤4:定义容器编排规则
核心`docker-compose.yml`需明确服务依赖与构建参数:
version: '3.8'
services:
app:
build:
context: ./app # 构建上下文指向app目录
dockerfile: Dockerfile # 指定构建用Dockerfile
expose:
- "5000" # 向内部网络暴露5000端口
nginx:
build:
context: ./nginx
dockerfile: Dockerfile
ports:
- "80:80" # 映射主机80端口到容器80端口
depends_on:
- app # 确保app服务先启动
同时创建两个目录的Dockerfile:
- app/Dockerfile(基于Python轻量镜像):
FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["python", "app.py"]
- nginx/Dockerfile(基于稳定Nginx版本):
FROM nginx:1.21.1-alpine
COPY nginx.conf /etc/nginx/conf.d/default.conf # 覆盖默认配置
步骤5:启动与验证
在项目根目录执行启动命令:
docker-compose up -d # -d参数表示后台运行
约30秒后,通过`docker-compose ps`查看容器状态,当两个服务均显示"Up"时,访问香港VPS公网IP(如`http://123.45.67.89`),应看到"Hello, 香港VPS容器化部署!"的返回。
性能与扩展性考量
香港VPS的SSD存储可加速Docker镜像构建(相比机械硬盘快2-3倍),低延迟网络(内地到香港平均延迟<50ms)保障Nginx与Flask容器间通信效率。若需扩展,只需在`docker-compose.yml`中增加`scale`参数(如`docker-compose up -d --scale app=3`),即可快速实现应用容器横向扩容。
掌握Docker Compose在香港VPS Linux上的应用,能快速扩展至微服务架构,无论是开发测试还是生产环境,都能显著提升部署效率。