Docker項目部署教程
部署服務端(后端)

1). 修改項目的配置文件,修改數(shù)據(jù)庫服務地址(打包package)

然后,執(zhí)行maven中的package生命周期,進行打包(跳過測試),并將打包后的jar包命名為 tlias.jar 。


2). 編寫Dockerfile文件(AI輔助)。
文件名 Dockerfile:
# 使用 CentOS 7 作為基礎鏡像 FROM centos:7 # 添加 JDK 到鏡像中 COPY jdk17.tar.gz /usr/local/ RUN tar -xzf /usr/local/jdk17.tar.gz -C /usr/local/ && rm /usr/local/jdk17.tar.gz # 設置環(huán)境變量 ENV JAVA_HOME=/usr/local/jdk-17.0.10 ENV PATH=$JAVA_HOME/bin:$PATH # 阿里云OSS環(huán)境變量 ENV OSS_ACCESS_KEY_ID=LTAI5tP6dc4cvccdvvySE39X ENV OSS_ACCESS_KEY_SECRET=ZSyIT31qhxIkS0dH1H9WzHqPiyM3Ot #統(tǒng)一編碼 ENV LANG=en_US.UTF-8 ENV LANGUAGE=en_US:en ENV LC_ALL=en_US.UTF-8 # 創(chuàng)建應用目錄 RUN mkdir -p /tlias WORKDIR /tlias # 復制應用 JAR 文件到容器 COPY tlias.jar tlias.jar # 暴露端口 EXPOSE 8080 # 運行命令 ENTRYPOINT ["java","-jar","/tlias/tlias.jar"]
由于項目要運行,需要依賴jdk的環(huán)境,所以這里我們需要將tlias.jar,jdk17.tar.gz,Dockerfile三個文件,上傳到Linux服務器的 /root/tlias 目錄下(如果沒有這個目錄,提前創(chuàng)建好)。

3). 構建Docker鏡像,部署Docker容器,運行測試。
構建Docker鏡像
docker build -t tlias:1.0 .

部署Docker容器
docker run -d --name tlias-server --network itheima -p 8080:8080 tlias:1.0
通過 docker logs -f 容器名,就可以查看容器的運行日志。

這樣后端服務,就已經(jīng)啟動起來了。
部署前端

需求:創(chuàng)建一個新的nginx容器,將資料中提供的前端項目的靜態(tài)資源部署到nginx中。
步驟:
在宿主機上準備靜態(tài)文件及配置文件存放目錄(在 /usr/local 目錄下創(chuàng)建 tlias-web 目錄)。
-v /usr/local/tlias-web/html:/usr/share/nginx/html -v /usr/local/tlias-web/conf/nginx.conf:/etc/nginx/nginx.conf
部署nginx容器
1). 部署nginx容器(設置目錄映射)。
將 目錄
html和 配置文件存放目錄conf,上傳至服務器端的/usr/local/tlias-web目錄下。



執(zhí)行如下命令,部署nginx容器
docker run -d \ --name nginx-tlias \ -v /usr/local/tlias-web/html:/usr/share/nginx/html \ -v /usr/local/tlias-web/conf/nginx.conf:/etc/nginx/nginx.conf \ --network itheima \ -p 80:80 \ nginx:1.20.2
前后端都部署完畢后,就可以打開瀏覽器,來測試一下。訪問前端的nginx服務器 。

總結:
- 先部署mysql然后是后端最后是前端
- 部署MySQL
- 在前面的這個本地目錄掛載當中我們實現(xiàn)了mysql的操作容器數(shù)據(jù)目錄,
- 配置文件,還有初始化腳本的目錄
- 掛載而在初始化腳本當中有相關的數(shù)據(jù)庫文件然后把它掛在上來
docker run -d \ --name mysql \ -p 3307:3306 \ -e MYSQL_ROOT_PASSWORD=123 \ -e TZ=Asia/Shanghai \ -v /root/mysql/data:/var/lib/mysql \ -v /root/mysql/init:/docker-entrypoint-initdb.d \ -v /root/mysql/conf:/etc/mysql/conf.d \ mysql:8

后端項目
如何部署一個后端項目
一般會按 “數(shù)據(jù)庫 → 應用 → 容器化 → 部署驗證” 這個思路來做:
1、先準備基礎環(huán)境(數(shù)據(jù)庫)
- 使用 Docker 啟動 MySQL 容器
- 創(chuàng)建業(yè)務所需的數(shù)據(jù)庫和表結構
- 確保數(shù)據(jù)庫服務穩(wěn)定可訪問
2、處理后端應用本身(以 Java / Spring Boot 為例)
- 修改項目配置文件,把數(shù)據(jù)庫地址改成容器或服務器對應的地址
- 調(diào)整日志配置(如 logback),把日志輸出到容器可掛載的目錄,方便后期運維
- 將項目打包成可運行的 jar 包
3、對后端應用進行容器化
- 編寫 Dockerfile,指定基礎 JDK 鏡像
- 把 jar 包復制到鏡像中,并設置啟動方式
- 構建后端應用的 Docker 鏡像
4、部署并運行容器
- 使用構建好的鏡像啟動容器
- 配置端口映射、環(huán)境變量、日志目錄掛載
- 確認后端服務能正常啟動并連接數(shù)據(jù)庫
5、運行與驗證
- 通過接口或前端訪問驗證服務是否正常
- 檢查日志和數(shù)據(jù)庫連接是否正常
一句總結:
整個過程的核心是:先保證數(shù)據(jù)庫可用,再讓應用配置適配容器環(huán)境,最后通過 Docker 實現(xiàn)標準化部署和運行。
前端
前端項目你是怎么部署的?
一般是通過 Nginx + Docker 容器化 的方式來部署前端靜態(tài)資源,整體思路是:
1、創(chuàng)建并部署 Nginx 容器
- 使用 Docker 啟動一個獨立的 Nginx 容器
通過目錄映射的方式:
- 將前端打包后的 靜態(tài)資源 映射到 Nginx 的 html 目錄
- 將自定義的 nginx.conf 配置文件 映射到容器中
這樣做的好處是:
- 不用進容器改配置
- 前端資源和配置都可以在宿主機統(tǒng)一管理
2、配置 Nginx 反向代理(重點)
- 在 nginx.conf 中配置 反向代理規(guī)則
- 直接使用 Docker 容器名作為 upstream 地址,而不是 IP
例如:
- 前端通過 Nginx
- Nginx 反向代理到后端容器 tlias-web-management
- 這是基于 Docker 內(nèi)部網(wǎng)絡的 容器名自動 DNS 解析機制
好處是:
- 容器重啟 IP 改變也不受影響
- 服務之間解耦,部署更穩(wěn)定
面試時可以一句話點亮:
- “Nginx 在 Docker 網(wǎng)絡中可以直接通過容器名訪問后端服務。”
3、上傳并部署前端資源
- 將前端項目打包后的靜態(tài)文件上傳到服務器
- 放入 Nginx 容器映射的目錄中
- 同時準備好對應的 Nginx 配置文件
4、啟動并驗證
- 啟動 Nginx 容器
- 通過瀏覽器訪問前端地址
驗證:
- 靜態(tài)資源是否正常加載
- 接口請求是否成功被反向代理到后端容器
總結
前端通過 Nginx 容器提供靜態(tài)資源服務,并利用 Docker 網(wǎng)絡和容器名 實現(xiàn)對后端容器的反向代理,整體部署方式清晰、穩(wěn)定、易維護。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
詳解基于docker 如何部署surging分布式微服務引擎
這篇文章主要介紹了詳解基于docker 如何部署surging分布式微服務引擎,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-06-06
.Net8項目使用docker、docker-compose部署的圖文步驟
本文主要介紹了.Net8項目使用docker、docker-compose部署的圖文步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2025-04-04

