You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从Docker Hub拉取镜像在VM上通过docker-compose up运行的操作步骤

VM 端 Docker Compose 部署全流程

1. 前置环境配置

首先在目标VM上安装Docker和Docker Compose环境,以Ubuntu/Debian系为例,执行以下命令:

# 更新软件源
sudo apt update && sudo apt upgrade -y
# 安装Docker
sudo apt install docker.io -y
# 安装Docker Compose
sudo apt install docker-compose -y
# 设置Docker开机自启
sudo systemctl enable --now docker
# (可选)将当前登录用户加入docker用户组,后续执行docker命令无需加sudo
sudo usermod -aG docker $USER
newgrp docker

安装完成后执行docker -v和docker-compose -v,能正常输出版本号即代表环境就绪。

注意:如果是CentOS/RHEL系系统,替换包管理器命令为yum即可,核心安装逻辑一致。

2. 适配部署场景的Compose配置调整

你本地使用的docker-compose.yml是开发环境配置,直接在VM上使用会触发本地构建失败、容器内代码被空目录覆盖的问题,需要先做两处必要调整:

  • 删除build: .字段:VM端不需要本地构建镜像,直接拉取Docker Hub上的预构建镜像即可
  • 删除根目录挂载volumes: - .:/rest-api-scraper:该配置是开发时用于代码热更新的,VM端无对应本地源码的话会把容器内的项目文件全部覆盖为空,导致服务启动失败;如果你的Django服务使用SQLite数据库需要持久化,单独给数据库文件目录配置挂载即可。

3. 创建部署目录与Compose文件

在VM上新建专门的部署目录,在目录内创建docker-compose.yml文件,写入以下配置(同时包含前端、后端两个服务,一次命令即可启动全部组件):

version: '3'

services:
  # Angular前端服务
  frontend:
    image: andreclerigo/bom_e_barato:latest
    container_name: bom-e-barato-frontend
    ports:
      - "80:80"
    restart: always
    depends_on:
      - backend

  # Django REST API后端服务
  backend:
    image: andreclerigo/rest-api-scraper:latest
    container_name: rest-api-scraper
    command: bash -c "python backend/manage.py makemigrations && python backend/manage.py migrate && python backend/manage.py runserver 0.0.0.0:8000"
    ports:
      - "8000:8000"
    restart: always
    # 如果你使用SQLite需要持久化数据,放开下面的volumes配置
    # volumes:
    #   - ./db_data:/rest-api-scraper/backend

配置说明:添加restart: always字段后,VM重启或者服务异常退出时会自动拉起容器,不需要手动干预重启。

4. 拉取镜像并启动服务

在docker-compose.yml所在的目录下,依次执行以下命令:

# 从Docker Hub拉取最新版本的两个镜像
docker-compose pull

# 后台启动所有服务
docker-compose up -d

5. 服务可用性验证

启动完成后执行以下检查确认服务正常:

  • 执行docker-compose ps,查看两个容器的状态是否为Up
  • 执行curl http://localhost:80,能返回Nginx页面的HTML内容即代表前端服务正常
  • 执行curl http://localhost:8000,能返回Django接口的响应内容即代表后端服务正常
  • 如果需要公网访问,记得在VM的安全组/防火墙规则中放开80、8000端口的入方向访问权限

6. 常用运维操作

  • 查看服务运行日志:docker-compose logs -f
  • 重启所有服务:docker-compose restart
  • 停止所有服务:docker-compose down
  • 更新镜像版本:重新执行docker-compose pull后执行docker-compose up -d即可完成更新

内容的提问来源于stack exchange,提问作者André Clérigo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 04:54:12