docker 运行自定义化的服务-后端

docker 运行自定义化的服务-前端-CSDN博客

运行自定义化的后端服务

具体如下:

①打包后端项目,形成jar包

②编写dockerfile文件,文件内容如下:

bash 复制代码
# 使用官方 OpenJDK 镜像
FROM jdk8:1.8

LABEL maintainer="ATB" version="1.0" description="Docker image for ruoyi-admin Spring Boot application"

# 创建目录(logs、上传目录等)
RUN mkdir -p /home/soft/app/serverapp/logs /home/soft/app/serverapp/uploadPath

# 设置工作目录
WORKDIR /home/soft/app/serverapp

# 拷贝 Spring Boot jar 包和 config 配置(可选)
COPY ./jar/ruoyi-admin.jar ./ruoyi-admin.jar
COPY ./jar/config ./config

# 日志持久化挂载点(建议在运行时挂载)
VOLUME ["/home/soft/app/serverapp/logs", "/home/soft/app/serverapp/uploadPath"]

# 暴露 Spring Boot 服务端口(比如 8282)
EXPOSE 8282

# 健康检查(可选)
HEALTHCHECK --interval=30s --timeout=5s --retries=3 \
  CMD wget --no-verbose --tries=1 --spider http://localhost:8282/actuator/health || exit 1

# 启动服务(如果使用 config 文件夹,需要指定位置)
ENTRYPOINT ["java", "-jar", "./ruoyi-admin.jar", "--spring.config.location=classpath:/,file:./config/"]

最后把后端服务jar包、dockerfile、config(config配置文件夹,可选)放到一个文件夹serverapp中

结果如下:

├── jar/

│ ├── ruoyi-admin.jar

│ └── config/ # 可选:Spring Boot 外部化配置

│ ├── application.yml

│ └── ...

├── Dockerfile

上传到服务器中

构建docker镜像:docker build -t 容器名:版本号 .

bash 复制代码
docker build -t my-serverapp:1.0 .

运行容器:

bash 复制代码
docker run -d  -p 8282:8282  --name ryserverapp  my-serverapp:1.0

可选添加 -it :docker run -it -d -p 8282:8282 my-serverapp:1.0

运行容器(可选挂载日志)推荐

bash 复制代码
docker run -d  --name ruoyi-backend  -p 8282:8282  -v /home/soft/app/serverapp/logs:/home/soft/app/serverapp/logs  -v /home/soft/app/serverapp/uploadPath:/home/soft/app/serverapp/uploadPath  my-serverapp:1.0

docker run -d \

--name ryserverapp \

-p 8282:8282 \

-v /home/soft/app/serverapp/logs:/home/soft/app/serverapp/logs \

-v /home/soft/app/serverapp/uploadPath:/home/soft/app/serverapp/uploadPath \

my-serverapp:1.0

运行容器一些参数说明:

-d:后台运行容器,并返回容器ID。

-p:指定端口映射,格式为:主机(宿主)端口:容器端口。

-i:以交互模式运行容器,通常与 -t 同时使用。

-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用。

--name:为容器指定一个名称。

-e:设置环境变量。

-v:绑定一个卷。

然后就可以正常访问了

查看容器运行日志:docker logs 容器ID

bash 复制代码
docker logs fca4bb2c4e02(容器ID)

其他命令内容:

停止所有运行中的容器

bash 复制代码
docker stop $(docker ps -q)

其中,docker ps -q 会生成所有运行中容器的 ID 列表,docker stop 会停止这些容器

要删除所有容器

bash 复制代码
docker rm $(docker ps -aq)

其中,docker ps -aq 会生成所有容器的 ID 列表,docker rm 会删除这些容器

同时停用并删除所有容器

bash 复制代码
docker stop $(docker ps -q) && docker rm $(docker ps -aq)

该命令首先停止所有运行中的容器,然后删除所有容器

bash 复制代码
docker stop $(docker ps -a -q)

该命令会遍历所有容器,并使用它们的ID(以q参数的格式)来停止。使用-a参数确保包括所有状态的容器。


其他docker相关:

Docker 相关内容记录-CSDN博客

银河麒麟国产化系统(或者是Linux)一键安装docker和docker-compose_银河麒麟安装docker compose-CSDN博客

docker 环境下运行部署相关内容-CSDN博客

相关推荐
用户938515635071 小时前
Docker + Nginx + Node.js:从“我的电脑能跑,你的电脑跑不了”到一键部署
后端·nginx·docker
GlobalSign数字证书1 小时前
小企业零运维 TLS 架构设计:证书生命周期管理(CLM)与自动化轮换策略的技术选型
运维·自动化
艾伦_耶格宇3 小时前
【ELK】-4 logstash的搭建及操作
linux·运维·ubuntu·elk
mifengxing4 小时前
文件逻辑结构、物理结构与磁盘空闲存储空间管理
大数据·linux·运维·操作系统·计算机408
SCandL1525 小时前
Docker的实战应用
java·docker·容器
小此方5 小时前
Re:Linux系统篇(五十七)线程篇 · 十:基于环形缓冲的生产者消费者模型与信号量
linux·运维·驱动开发
fanged6 小时前
Linux的DD命令
linux·运维·服务器
xiaoxiangsiyan7 小时前
RHCE2026云原生路线EX188和EX288完整备考指南
运维·网络·云原生·自动化
九硕智慧建筑一体化厂家7 小时前
从照明节能到碳排可见:能碳平台助力机房迈向 “零碳” 未来
运维·笔记·智慧城市
张洛闻Eren7 小时前
MySQL 管理复制拓扑【MySQL第四课】
linux·运维·数据库·mysql