docker 運行自定義化的服務-前端-CSDN博客
運行自定義化的后端服務
具體如下:
①打包后端項目,形成jar包
②編寫dockerfile文件,文件內容如下:
# 使用官方 OpenJDK 鏡像
FROM jdk8:1.8LABEL 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 容器名:版本號 .
docker build -t my-serverapp:1.0 .
運行容器:
docker run -d ?-p 8282:8282 ?--name ryserverapp ?my-serverapp:1.0
可選添加 -it :docker run -it -d -p 8282:8282 my-serverapp:1.0
運行容器(可選掛載日志)推薦
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
docker logs fca4bb2c4e02(容器ID)
其他命令內容:
停止所有運行中的容器
docker stop $(docker ps -q)
其中,docker ps -q 會生成所有運行中容器的 ID 列表,docker stop 會停止這些容器
要刪除所有容器
docker rm $(docker ps -aq)
其中,docker ps -aq 會生成所有容器的 ID 列表,docker rm 會刪除這些容器
同時停用并刪除所有容器
docker stop $(docker ps -q) && docker rm $(docker ps -aq)
該命令首先停止所有運行中的容器,然后刪除所有容器
docker stop $(docker ps -a -q)
該命令會遍歷所有容器,并使用它們的ID(以q參數的格式)來停止。使用-a參數確保包括所有狀態的容器。
其他docker相關:
Docker 相關內容記錄-CSDN博客
銀河麒麟國產化系統(或者是Linux)一鍵安裝docker和docker-compose_銀河麒麟安裝docker compose-CSDN博客
docker 環境下運行部署相關內容-CSDN博客?