项目改造为 Docker 容器使用指南

一、项目背景

将程序部署到服务器,无需重新安装运行环境,使用 Docker 容器化部署。

二、制作自定义镜像

1. 选择基础镜像

原基础镜像 frolvlad/alpine-oraclejre8 已被官方删除,替换为官方推荐的轻量 Java8 镜像:

plaintext

复制代码
eclipse-temurin:8-jre-alpine

2. 编写 Dockerfile

创建 Dockerfile 文件,写入以下内容:

dockerfile

复制代码
FROM eclipse-temurin:8-jre-alpine

WORKDIR /app

COPY app-server-1.0-SNAPSHOT.jar .

EXPOSE 18084

ENTRYPOINT ["java", "-jar", "app-server-1.0-SNAPSHOT.jar", "--spring.profiles.active=local"]

三、构建镜像

1. 执行构建命令

bash

运行

复制代码
docker build -t app-service .

2. 查看构建完成的镜像

bash

运行

复制代码
docker images

示例输出:

plaintext

复制代码
app-service:latest    9c317d0e0a22    452MB    172MB

四、启动容器

1. 基础启动命令

bash

运行

复制代码
docker run -d --name app-service -p 18084:18084 app-service:latest

2. 查看运行中的容器

bash

运行

复制代码
docker ps

3. 查看容器日志

bash

运行

复制代码
docker logs -f app-service

五、配置容器网络

1. 查看所有 Docker 网络

bash

运行

复制代码
docker network ls

2. 查看容器网络详情

bash

运行

复制代码
docker inspect app-service

3. 将容器加入指定网络

bash

运行

复制代码
docker run -d --name app-service --network local-dev-env_local-dev-network -p 18084:18084 app-service:latest

六、容器访问宿主机服务

Docker 容器访问宿主机的数据库、Nacos 等服务,使用固定地址:

plaintext

复制代码
host.docker.internal

注意:jar 包方式需将配置文件拷贝出来修改后再拷贝回容器,否则配置不生效。

七、带版本号构建与启动

1. 构建带版本号的镜像

bash

运行

复制代码
docker build -t app-service:1.0 .

2. 启动带版本号的容器

bash

运行

复制代码
docker run -d --name app-service --network local-dev-env_local-dev-network -p 18084:18084 app-service:1.0

八、配置文件修改说明

1. 核心配置文件

  • bootstrap.yml:项目优先加载,用于连接 Nacos 配置中心
  • application.yml:项目运行配置,两个文件需同时正确配置

2. 文件拷贝命令

  • 从容器拷贝到本地:

bash

运行

复制代码
docker cp app-service:/app/app-server-1.0-SNAPSHOT.jar d:\LEO\project\test3\backend-build\1\
  • 从本地拷贝到容器:

bash

运行

复制代码
docker cp app-server-1.0-SNAPSHOT.jar app-service:/app

3. 重启容器生效

bash

运行

复制代码
docker restart app-service

九、批量导出镜像

将所有服务镜像打包为单个 tar 包,用于迁移部署:

bash

运行

复制代码
docker save -o app-all.tar app-service-1:1.0 app-service-2:1.0 app-service-3:1.0 app-service-4:1.0 app-service-5:1.0 app-service-6:1.0 app-service-7:1.0 nacos/nacos-server:v2.2.3 redis:7-alpine

脱敏说明

相关推荐
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工3 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
Alsn863 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
酣大智3 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_3 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉3 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造
AC赳赳老秦3 天前
用 OpenClaw 搭建服务器故障应急响应系统,自动处理 80% 常见运维故障
android·运维·服务器·python·rxjava·deepseek·openclaw
2601_961875243 天前
决战申论100题2026|最新|范文
linux·容器·centos·debian·ssh·fabric·vagrant