一、项目背景将程序部署到服务器无需重新安装运行环境使用 Docker 容器化部署。二、制作自定义镜像1. 选择基础镜像原基础镜像frolvlad/alpine-oraclejre8已被官方删除替换为官方推荐的轻量 Java8 镜像plaintexteclipse-temurin:8-jre-alpine2. 编写 Dockerfile创建Dockerfile文件写入以下内容dockerfileFROM 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.activelocal]三、构建镜像1. 执行构建命令bash运行docker build -t app-service .2. 查看构建完成的镜像bash运行docker images示例输出plaintextapp-service:latest 9c317d0e0a22 452MB 172MB四、启动容器1. 基础启动命令bash运行docker run -d --name app-service -p 18084:18084 app-service:latest2. 查看运行中的容器bash运行docker ps3. 查看容器日志bash运行docker logs -f app-service五、配置容器网络1. 查看所有 Docker 网络bash运行docker network ls2. 查看容器网络详情bash运行docker inspect app-service3. 将容器加入指定网络bash运行docker run -d --name app-service --network local-dev-env_local-dev-network -p 18084:18084 app-service:latest六、容器访问宿主机服务Docker 容器访问宿主机的数据库、Nacos 等服务使用固定地址plaintexthost.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:/app3. 重启容器生效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脱敏说明