项目改造为 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

脱敏说明

相关推荐
我头发多我先学32 分钟前
linux系统编程:初识进程
linux·运维·服务器
云飞云共享云桌面1 小时前
SolidWorks—天津智能装备工厂1台高配主机共享给10个研发用
运维·服务器·自动化·汽车·制造
回眸不遇1 小时前
将 Docker虚拟磁盘文件ext.vhdx迁移出C盘 ,更换到D盘
c语言·docker·容器
苍狗T1 小时前
LVS相关知识总结
linux·运维·服务器·lvs
雨辰AI1 小时前
K8s人大金仓主从高可用搭建|容器化集群自动同步+故障切换(生产完整版)
云原生·容器·kubernetes
各类产品分享2 小时前
什么是AR智慧运维系统,主要能解决什么问题
运维·ar·ar智慧运维解决方案
RisunJan3 小时前
Linux命令-skill(发送信号给进程)
linux·运维·服务器
潘正翔3 小时前
k8s基础_kubeadm搭建k8s集群
linux·运维·docker·云原生·容器·kubernetes
Echo flower3 小时前
Docker 容器中 Puppeteer 僵尸进程排查与修复
运维·docker·容器·puppeteer
骊城英雄3 小时前
彩笔运维勇闯机器学习--逻辑回归
运维·机器学习·逻辑回归