docker容器部署-windows-ubuntu

1.要在windows 下安装DOCKER

1.下载安装 https://www.docker.com/products/docker-desktop

复制代码
{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false,
  "registry-mirrors": [
    "https://mirror.ccs.tencentyun.com",
    "https://docker.m.daocloud.io",
    "https://dockerpull.org",
    "https://dockerpull.org",
    "https://docker.1panel.live",
    "https://hub.rat.dev",
    "https://docker.mirrors.ustc.edu.cn",
    "https://hub-mirror.c.163.com"
  ]
}

cd /work/PVF_Deploy/

1.windows 环境打包

1.1 前端: cd D:\PVF_WEB\my-project-frontend npm install npm run build 生成 dist

配置 D:\PVF_WEB\nginx nginx.conf 配置文件

生成: dist 和 nginx.conf 文件

1.2后端 cd D:\PVF_WEB\my-project-backend

修改 `D:\PVF_WEB\my-project-backend\src\main\resources\application.properties`:

  • `spring.datasource.url`: 将 IP 地址改为 `mysql`(Docker 内部网络服务名)

  • `spring.datasource.password`: 修改为部署时使用的密码

生成:`target/my-project-backend-0.0.1-SNAPSHOT.jar`

2.windows 下 dokcer

2.1docker 安装及 docker engine 配置文件修改

2.2 构建后端的镜像,查看镜像端口,保存镜像,在ubuntu 上运行

后端镜像的Dockerfile `D:\PVF_WEB\my-project-backend\Dockerfile `

cd D:\PVF_WEB\my-project-backend

docker build -t pvf-backend:latest . //单独

docker inspect pvf-backend:latest --format='{{.Config.ExposedPorts}}'

docker save pvf-backend:latest -o pvf-backend.tar

docker load -i pvf-backend.tar

2.3 构建前端的镜像,查看镜像端口,保存镜像,在ubuntu 上运行

前端镜像的Dockerfile `D:\PVF_WEB\my-project-frontend\Dockerfile `

前端镜像的nginx 配置 `D:\PVF_WEB\my-project-frontend\nginx.conf `

2.4 创建 docker-compose.yml

`D:\PVF_WEB\docker-compose.yml`

2.5创建Docker镜像

在目录 D:\PVF_WEB 下生成和保存镜像

docker-compose build

docker save -o pvf-mysql.tar mysql:8.0

docker save -o pvf-backend.tar pvf_web-backend

docker save -o pvf-frontend.tar pvf_web-frontend

总结:上传到部署机器上的文件是:

镜像文件:pvf-mysql.tar,pvf-backend.tar pvf-frontend.tar

配置文件:docker-compose

docker-compose 对于有源码机器 用的关键词是build

对于无源码机器 用的关键词是 image

window 有源码时关键词为 build

services:

backend:

build: ./my-project-backend

frontend:

build: ./my-project-frontend

ubuntu24.04无源码 关键词为image

services:

mysql:

image: mysql:8.0

container_name: pvf-mysql

... 其他配置

backend:

image: pvf-backend:latest # ✅ 使用已加载的镜像

container_name: pvf-backend

... 其他配置

frontend:

image: pvf-frontend:latest # ✅ 使用已加载的镜像

container_name: pvf-frontend

3.ubuntu

3.1环境准备

3.11安装必要的工具

sudo apt install -y wget curl vim unzip net-tools

3.12 安装 Docker 依赖

sudo apt install -y \

ca-certificates \

curl \

gnupg \

lsb-release

3.13 添加 Docker 官方 GPG 密钥

sudo mkdir -p /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

3.14添加 Docker 仓库

echo \

"deb arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg https://download.docker.com/linux/ubuntu \

$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

3.15安装 Docker Engine

sudo apt update

sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

3.16验证 Docker 安装,启动服务 验证运行状态

docker --version

docker compose version

sudo systemctl start docker

sudo systemctl enable docker

sudo systemctl status docker

3.2 复制文件到 /work/int/PVF_Deploy/

pvf-mysql.tar

pvf-backend.tar

pvf-frontend.tar

docker-compose.yml

3.3 加载 Docker 镜像 并查看 启动 查看状态 查看后端日志 容器操作的一般命令

docker load -i pvf-mysql.tar

docker load -i pvf-backend.tar

docker load -i pvf-frontend.tar

docker images

docker inspect pvf-backend:latest --format='{{.Config.ExposedPorts}}'

docker compose up -d

docker compose ps

docker logs -f pvf_backend

容器操作的一般命令

停止并删除容器

docker stop pvf_frontend pvf_backend pvf_mysql 2>/dev/null

docker rm pvf_frontend pvf_backend pvf_mysql 2>/dev/null

删除旧镜像

docker rmi pvf-backend:latest pvf-frontend:latest 2>/dev/null

删除旧网络

docker network rm pvf_network 2>/dev/null

docker network rm pvf_deploy_pvf_network 2>/dev/null

删除旧卷(可选,会删除数据库数据)

docker volume rm mysql_data 2>/dev/null

查看当前镜像确认删除

docker images

相关推荐
AC赳赳老秦16 分钟前
司法公开数据采集应用:OpenClaw 抓取裁判文书公开信息,批量整理同类参考案例
java·大数据·python·数据挖掘·数据分析·php·openclaw
笑小枫22 分钟前
用 Claude Code 推翻重写笑小枫网站
java·人工智能·spring boot·ai编程
霸道流氓气质35 分钟前
ApiPost 中配置自动获取 Token 并调用业务接口完整指南
java·服务器·数据库
独隅1 小时前
IntelliJ IDEA 接入多种AI大模型插件终极指南(2026.1 企业合规版)
java·人工智能·intellij-idea
还是奇怪1 小时前
Simon Willison 用 DSPy 优化 Datasette Agent 提示词:提示工程正在变成可测试的软件工程
java·开发语言·软件工程
zfoo-framework2 小时前
1.ansible安装 2.虚拟机克隆
java
BullSmall2 小时前
Sonarqube9.9 docker 镜像启动后 conf 下的配置文件没有了
docker·容器·eureka
码上解惑2 小时前
从 Dify 工作流说起:常用节点怎么选、怎样组合?
java·人工智能·ai·agent·dify·智能体·spring ai
ruofu332 小时前
wsl端是py312,但是项目是py311, 如何下载py311的依赖包(wheels)
python·docker
青山木3 小时前
Hot 100 --- 岛屿数量
java·数据结构·算法·leetcode·深度优先·广度优先