Linux 下 Docker 容器部署指南(Java + Redis 示例)

Linux 下 Docker 容器部署指南(Java + Redis 示例)

  • 一、Docker 鏡像源配置
  • 二、構建 Docker 鏡像
  • 三、運行 Docker 容器
  • 四、查看容器日志
  • 五、實踐思考與擴展

在 Linux 上部署 Java 應用到 Docker 容器中,并訪問宿主機的 Redis 服務,是一個常見場景。本文將結合實際操作步驟,詳細講解 Docker 鏡像配置、鏡像構建、容器啟動及宿主機 Redis 訪問問題的解決方案。

一、Docker 鏡像源配置

國內訪問 Docker Hub 較慢,建議配置國內鏡像源來加速鏡像下載。編輯 Docker 配置文件 /etc/docker/daemon.json:

{"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn","https://mirror.iscas.ac.cn/docker/","https://docker.m.daocloud.io"]
}

配置完成后,執行以下命令重新加載配置并重啟 Docker 服務:

systemctl daemon-reload
systemctl restart docker

?? 注意:修改鏡像源后,最好先執行 docker info | grep -i mirror,確認鏡像源已生效。

二、構建 Docker 鏡像

在項目根目錄下,創建 Dockerfile,例如:

# 使用官方OpenJDK 8運行時作為父鏡像(Alpine Linux版本非常小巧)
FROM openjdk:8-jdk-alpine# 在鏡像內設置一個工作目錄,后續的命令都會在這個目錄下執行
WORKDIR /app# 將當前目錄下的jar文件復制到鏡像的工作目錄中,并可重命名
COPY sd-api-assistant-1.0.0-SNAPSHOT.jar /app/sd-api-assistant.jar# 告訴Docker容器在運行時監聽指定的端口(根據你的應用實際端口修改)
EXPOSE 9799# 配置容器啟動后執行的命令
ENTRYPOINT ["java", "-jar", "sd-api-assistant.jar"]

然后執行構建命令:

docker build -t sd-api-assistant:1.0.0 .

構建完成后,你可以通過 docker images 查看本地鏡像列表。

(base) [root@localhost aiyunhua_api]# docker images
REPOSITORY                      TAG       IMAGE ID       CREATED             SIZE
sd-api-assistant                1.0.0     0ed1e0438307   26 minutes ago      557MB

三、運行 Docker 容器

  1. 普通啟動

如果應用不需要訪問宿主機服務,直接運行:

docker run -p 9799:9799 --name aiyunhua-container sd-api-assistant:1.0.0
  1. 訪問宿主機 Redis 服務

在容器里訪問宿主機的 Redis,需要注意:

容器里的 127.0.0.1 只指容器本身,不能直接訪問宿主機

Linux Docker 沒有默認的 host.docker.internal,需要手動添加

運行容器時,添加 --add-host 參數:

docker run \--add-host=host.docker.internal:host-gateway \-d \-p 9799:9799 \--name aiyunhua-container \sd-api-assistant:1.0.0

在 Java 項目的 application.yml 中配置 Redis:

spring:redis:host: host.docker.internalport: 6379
  1. 查看運行中的容器
(base) [root@localhost aiyunhua_api]# docker ps
CONTAINER ID   IMAGE                    COMMAND                  CREATED          STATUS          PORTS                                       NAMES
d6a5704734c2   sd-api-assistant:1.0.0   "java -jar sd-api-as…"   22 minutes ago   Up 22 minutes   0.0.0.0:9799->9799/tcp, :::9799->9799/tcp   aiyunhua-container

🔑 注意事項:

  • 宿主機 Redis 必須監聽所有網卡:bind 0.0.0.0
  • 確保防火墻放行 6379 端口:
firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --reload
  • Redis 默認可能開啟 protected-mode yes,需要設置 protected-mode no 以允許外部訪問(請確保在安全網絡環境下使用)。

四、查看容器日志

容器啟動后,可以通過日志監控應用運行狀態:

docker logs -f aiyunhua-container

五、實踐思考與擴展

  1. 宿主機服務訪問問題
  • Windows / Mac Docker Desktop 默認支持 host.docker.internal
  • Linux 需要手動添加 --add-host 或直接使用宿主機 IP
  1. Docker Compose 使用場景
  • 如果有多個服務(Java 應用 + Redis + MySQL 等),推薦使用 docker-compose.yml 管理網絡和依賴關系
  • 通過 extra_hosts 可以統一配置宿主機訪問
  1. 安全性
  • 容器訪問宿主機服務時要確保防火墻和網絡安全
  • 對外開放 Redis 端口時,建議設置密碼或僅在內網使用
  1. 鏡像優化
  • 使用輕量級基礎鏡像(如 Alpine)可減小鏡像體積
  • 將 jar 包及依賴分層 COPY,可減少構建時間

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/920653.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/920653.shtml
英文地址,請注明出處:http://en.pswp.cn/news/920653.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

智能聊天機器人-基于Spring AI實現

項目背景隨著??智能技術的快速發展和?模型開源趨勢的興起,智能聊天機器?在客服、知識問答、?活助? 等領域得到了?泛應?,我們接下來模仿這些應用實現一個智能的聊天機器人核心功能1.對話支持用戶和機器人之間的對話實時響應用戶的輸入,進行回答2.…

廣東省省考備考(第九十天8.30)——判斷推理(強化訓練)

判斷推理:類比推理(訓練1) 錯題解析 第一步:判斷題干詞語間邏輯關系。 綾、羅、綢、緞表示的是四種不同的絲織物,四者為并列關系,且分別都與絲織物構成包容關系中的種屬關系。 第二步:判斷選項詞…

DFS 回溯 【各種題型+對應LeetCode習題練習】

目錄 什么是深度優先搜索(DFS) DFS題型分類 DFS和回溯的關系 排列與組合 LeetCode 46 全排列 LeetCode 47 全排列 II LeetCode 39 組合總和 LeetCode 40 組合總和 II 子集 LeetCode 78 子集 LeetCode 90 子集 II 分割問題 LeetCode 131 分割…

大模型備案、算法備案補貼政策匯總【廣東地區】

廣州海珠 《廣州市海珠區建設人工智能大模型應用示范區實施細則的通知》規定,自 2024 年 6 月 18 日起至 2027 年 3 月 20 日,大規模企業首次完成國家級生成式人工智能(大語言模型)上線備案的,可獲得最高 100 萬元一次…

鴻蒙服務端開發資料匯總

文章目錄鴻蒙服務端開發資料匯總一、核心概念1.1 分布式架構1.2 微內核設計1.3 元服務架構二、技術棧2.1 開發語言2.2 開發框架與工具2.3 核心技術能力三、官方文檔與資源3.1 官方文檔3.2 示例代碼與開源資源四、應用案例4.1 政務領域4.2 金融領域4.3 交通出行4.4 企業辦公五、…

基于51單片機霍爾測速儀表測轉速調速系統設計

1 系統功能介紹 本設計為 基于51單片機霍爾測速儀表測轉速調速系統。系統以STC89C52單片機為核心,結合霍爾傳感器、LCD1602顯示模塊、電位器調速電路與電機驅動模塊,實現了對旋轉裝置的轉速檢測、數據顯示以及實時調節電機轉速的功能。 系統主要功能包括…

前端-初識Vue實例

一.準備容器 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </head>…

基于FPGA的簡易醫療呼叫器實現,包含testbench

目錄 1.課題概述 2.系統測試效果 3.核心程序與模型 4.系統原理簡介 5.完整工程文件 1.課題概述 醫院護理呼叫系統是病人請求值班醫生或護士進行緊急處理或咨詢的工具&#xff0c;可將病人的請求快速傳送給值班醫生或護士。其基本功能就是通過一種簡便的途徑使護理對象與醫…

Maya綁定基礎:創建骨骼和蒙皮、蒙皮權重控制的兩種方法

目錄 1 創建骨骼和蒙皮 2 蒙皮權重控制 方法一 3 蒙皮權重控制 方法二 1 創建骨骼和蒙皮 新建一個圓柱體 把圓柱體拉長一點&#xff0c;調到前視圖 骨架--創建關節 同時選中骨骼和模型&#xff0c;菜單欄--蒙皮--綁定蒙皮 對關節進行旋轉 詳細的步驟參考這個鏈接&#xf…

【Settings】OTA 升級時更新 Settings 數據庫

一、問題描述 基于 Android 14平臺&#xff0c;隨著后續的 UI 更新需要將某個控制項的 Settings 值更新&#xff0c;需要更新 SettingsProvider 的值。二、問題分析 1. 定義一個 Settings 常量 frameworks/base/core/java/android/provider/Settings.java /*** Whether to use …

開發electron時候Chromium 報 Not allowed to load local resource → 空白頁。

報錯含義 主進程&#xff08;main.js&#xff09;里 win.loadFile()/win.loadURL() 指向了 file:///…/app.asar/build/index.html&#xff0c; 但打包后真正的文件位于 app.asar 內部&#xff0c;路徑拼錯&#xff0c;于是 Chromium 報 Not allowed to load local resource →…

Ethan獨立開發新品速遞 | 2025-08-30

每日精選Product Hunt上最值得關注的獨立產品&#xff0c;發現全球創新靈感&#xff0c;助力你的產品成長。 下面從今天的 Product Hunt 熱榜中篩選出對獨立開發者&#xff08;尤其是注重開發工具、AI 工具、SaaS 與創業工具&#xff09;的10個最有參考價值的項目。篩選標準側重…

【C++ 】string類操作全解析

1. 為什么學習 string 類&#xff1f; 1.1 C 語言中的字符串 C 語言中&#xff0c;字符串是以\0結尾的一些字符的集合&#xff0c;為了操作方便&#xff0c;C 標準庫中提供了一些 str 系列的庫函數&#xff0c;但是這些庫函數與字符串是分離開的&#xff0c;不太符合 OOP &…

DAY15-新世紀DL(DeepLearning/深度學習)戰士:破(超參數調試、Batch正則化和程序框架)3

本文參考文章0.0 目錄-深度學習第一課《神經網絡與深度學習》-Stanford吳恩達教授-CSDN博客 1.調試處理 神經網絡的改變會涉及到許多不同的超參數設置&#xff0c;現在&#xff0c;對于超參數而言&#xff0c;如何找到一套比較好的設定&#xff1f; 訓練深度最難的事之一是你…

Android 14 PMS源碼分析

源碼參考&#xff1a;Search (aospxref.com) 一、簡介 PackageManagerService&#xff08;簡稱 PMS&#xff09;&#xff0c;是 Android 系統核心服務之一&#xff0c;處理包管理相關的工作&#xff0c;常見的比如安裝、卸載應用等。本章針對SyetemServer、PMS構造方法重點模…

內省排序:相對最迅速的通用排序算法

&#x1f50d; 內省排序&#xff1a;相對最迅速的通用排序算法 &#x1f680; 前言&#xff1a;排序算法的演進之路 排序算法是計算機科學的核心基礎之一&#xff0c;其性能直接影響著數據庫系統、科學計算、圖形渲染等領域的效率。隨著硬件架構的發展&#xff0c;排序算法經歷…

Linux驅動開發重要操作匯總

本文主要記錄imx6ull的linux驅動開發過程中常用的一些操作。 uboot編譯 make ARCHarm CROSS_COMPILEarm-linux-gnueabihf- distclean make ARCHarm CROSS_COMPILEarm-linux-gnueabihf mx6ull_14x14_evk_emmc_defconfig make V1 ARCHarm CROSS_COMPILEarm-linux-gnueabihf- …

【Java后端】MySQL 常見 SQL 語句優化指南

在 MySQL 中&#xff0c;SQL 優化是性能調優的核心環節&#xff0c;尤其是在數據量大、并發高的情況下。這里整理一份 MySQL 常見 SQL 語句優化指南&#xff0c;從查詢寫法、索引使用到執行計劃分析&#xff0c;涵蓋實用技巧&#xff1a;1. 查詢語句層面的優化 ? 避免 SELECT …

Golang 面試題「高級」

以下是 100 道 Golang 高級面試題及答案&#xff0c;聚焦語言底層實現、并發深度優化、性能調優、源碼級理解等核心方向&#xff0c;適合資深開發者或架構師級別的面試場景&#xff1a; 一、GPM 調度模型與并發深度 問題&#xff1a;Goroutine 的棧空間初始大小是多少&#xff…

WebGIS視角:體感溫度實證,哪座“火爐”火力全開?

目錄 前言 一、火爐城市空間分布及特點 1、空間分布 2、氣候特點 二、數據來源及技術實現 1、數據來源介紹 2、技術路線簡介 三、WebGIS系統實現 1、后端設計與實現 2、前端程序實現 四、成果展示 1、整體展示 2、蒸烤模式城市 3、舒適城市 五、總結 前言 “火爐…