dockerfile命令及構建+docker-compose安裝構建

一,dockerfile常用命令

命令介紹
FROM–指定基礎鏡像
LABEL作者信息
USER切換運行屬主身份
WORKDUR切換工作目錄
ENV用于docker容器設置環境變量
RUN用來執行命令行的命令
COPY把宿主機文件復制到鏡像中去
ADD將文件路徑復制添加到容器內部路徑
EXPOSE為容器打開指定要監聽的端口以實現與外部通信

二,dockerfile命令使用介紹

1. FROM(指定基礎鏡像)
FROM <鏡像>:[tag]
FROM openjdk:11-jdk-buster
當前主機沒有鏡像,會在官網下載
2. LABEL(作者信息)
LABEL maintainer = "作者信息"
3. WORKDUR(切換工作目錄)
WORKDUR /usr/local/tomcat/
4. ENV(用于docker容器設置環境變量)
ENV CATALINA_JAVA  /usr/local/tomcat
ENV PATH $CATALINA_HOME/bin:$PATH
5. RUN(用來執行命令行的命令)
RUN apt-get update
6. COPY(把宿主機文件復制到鏡像中去)
COPY source_file destination_file
7. ADD(將文件路徑復制添加到容器內部路徑)
ADD <源路徑> <目標路徑>
8. EXPOSE(為容器打開指定要監聽的端口以實現與外部通信)
EXPOSE 80
EXPOSE 80 443

三,構建一個dockerfile

# 使用官方OpenJDK 17鏡像(基于Ubuntu Jammy,包含完整JDKFROM eclipse-temurin:17-jdk-jammy# 設置工作目錄
WORKDIR /app# 將本地JAR文件復制到容器中(假設打包后的文件名為app.jar)
COPY target/app.jar /app/app.jar# 暴露應用端口(根據實際需求修改)
EXPOSE 8080# 啟動命令(根據實際啟動參數調整)
CMD ["java", "-jar", "/app/app.jar"]

四,docker-compose安裝構建

1. docker安裝docker-compose命令
# 使用 curl 下載(推薦)
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose# 或使用 wget 下載
sudo wget -O /usr/local/bin/docker-compose https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)# 添加執行權限
sudo chmod +x /usr/local/bin/docker-compose# 驗證安裝
docker-compose --version
# 正常應輸出類似:docker-compose version 1.xx.x, build xxxxx
2.構建docker-compose.yml配置
services:# 數據庫服務mysql:image: mysql:8.0environment:MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}MYSQL_DATABASE: ${MYSQL_DATABASE}MYSQL_USER: ${MYSQL_USER}MYSQL_PASSWORD: ${MYSQL_PASSWORD}volumes:- mysql_data:/var/lib/mysql- ./docker/mysql/my-custom.cnf:/etc/mysql/conf.d/custom.cnfnetworks:- ${NETWORK_NAME}restart: always# 緩存服務redis:image: redis:8.0command: redis-server --requirepass ${REDIS_PASSWORD}volumes:- redis_data:/data- ./docker/redis/redis.conf:/usr/local/etc/redis/redis.confnetworks:- ${NETWORK_NAME}restart: always# 搜索引擎elasticsearch:image: elasticsearch:8.11.3environment:- discovery.type=single-node- xpack.security.enabled=false- "ES_JAVA_OPTS=-Xms512m -Xmx512m"volumes:- es_data:/usr/share/elasticsearch/datanetworks:- ${NETWORK_NAME}ulimits:memlock:soft: -1hard: -1restart: always# 可視化分析kibana:image: kibana:8.11.3environment:- ELASTICSEARCH_HOSTS=http://elasticsearch:9200ports:- "5601:5601"networks:- ${NETWORK_NAME}depends_on:- elasticsearchrestart: always# 對象存儲minio:image: minio/minio:RELEASE.2023-10-13T21-12-34Zcommand: server /data --console-address ":9001"environment:MINIO_ROOT_USER: ${MINIO_ROOT_USER}MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD}volumes:- minio_data:/dataports:- "9000:9000"- "9001:9001"networks:- ${NETWORK_NAME}restart: always# 后端服務backend:build:context: ./backenddockerfile: ../docker/backend/Dockerfileenvironment:SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/${MYSQL_DATABASE}?useSSL=falseSPRING_DATASOURCE_USERNAME: ${MYSQL_USER}SPRING_DATASOURCE_PASSWORD: ${MYSQL_PASSWORD}REDIS_HOST: redisREDIS_PORT: 6379REDIS_PASSWORD: ${REDIS_PASSWORD}ELASTICSEARCH_HOST: elasticsearchMINIO_ENDPOINT: minio:9000MINIO_ACCESS_KEY: ${MINIO_ROOT_USER}MINIO_SECRET_KEY: ${MINIO_ROOT_PASSWORD}ports:- "${BACKEND_PORT}:8080"networks:- ${NETWORK_NAME}depends_on:- mysql- redis- elasticsearch- miniorestart: always# 前端服務frontend:build:context: ./frontenddockerfile: Dockerfileports:- "${FRONTEND_PORT}:80"networks:- ${NETWORK_NAME}depends_on:- backendrestart: always# 反向代理nginx:image: nginx:1.23volumes:- ./docker/nginx/nginx.conf:/etc/nginx/nginx.confports:- "80:80"- "443:443"networks:- ${NETWORK_NAME}depends_on:- frontend- backendrestart: alwaysnetworks:app_network:driver: bridgevolumes:mysql_data:redis_data:es_data:minio_data:

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

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

相關文章

數學:逆元,同余

逆元&#xff0c;同余 0.引言1.同余1.1 同余的基本性質1.2 解同余線性方程 2.逆元費馬小定理求逆元(m必需為質數&#xff09;擴展歐幾里得求逆元&#xff08;使用任意互質的a和m&#xff09; 0.引言 本文講述什么是逆元&#xff0c;如何求逆元。求逆元的兩種常規方法。然后知道…

廣州華銳互動:技術與創意雙驅動的 VR 先鋒?

廣州華銳互動能夠在眾多 VR 公司中嶄露頭角&#xff0c;離不開其強大的技術實力和源源不斷的創意靈感 。在技術研發方面&#xff0c;廣州華銳互動組建了一支專業的技術團隊&#xff0c;團隊成員均具備扎實的技術功底和豐富的行業經驗&#xff0c;他們專注于 VR、AR、3D 等核心技…

教育培訓教學通用PPT模版

教育培訓通用PPT模版&#xff0c;兒童教育PPT模版&#xff0c;公開課件教學PPT模版&#xff0c;讀書筆記PPT模版&#xff0c;古風PPT模版&#xff0c;教育教學通用PPT模版 教育培訓教學通用PPT模版&#xff1a;https://pan.quark.cn/s/6c2ed020e398

Data Vault 初探(五) —— 定期裝載_SQL

說明&#xff1a; 1. 定期裝載的周期為每天一次。 2. 每天裝載自上次裝載后的變化數據 3. 建立源數據庫的過渡表用于CDC 4. 建立cdc_time表用于基于時間戳的CDC 5. 因為源庫上只有訂單銷售表有時間屬性&#xff0c;所以除了sales_order和sales_order_item拉取變化數據外&#x…

Java虛擬機棧(JVM Stack)詳解與工作流程分析

Java虛擬機棧&#xff08;JVM Stack&#xff09;詳解與工作流程分析 1. 虛擬機棧核心概念 基本特性 線程私有&#xff1a;每個線程在創建時都會分配一個獨立的棧存儲內容&#xff1a; 棧幀&#xff08;Stack Frame&#xff09;&#xff1a;每個方法調用對應一個棧幀 生命周期…

Sonarqube:Jenkins觸發sonar掃描出現UnsupportedClassVersionError錯誤處理

文章目錄 1、問題現象2、問題根因3、解決思路3.1 解決思路13.2 解決思路23.3 解決思路3 1、問題現象 問題現象&#xff1a;在每次Jenkins觸發sonar掃描時&#xff0c;Sonar-scanner掃描器執行都會出現UnsupportedClassVersionError異常&#xff0c;如下&#xff1a; ERROR: …

Spark SQL to_json 函數介紹

目錄 前言函數介紹參數說明示例 前言 在Apache Hive中&#xff0c;并沒有內置的to_json函數。在Apache Spark SQL中確實有to_json函數,它可以用來將結構化數據&#xff08;如結構化類型或MAP類型&#xff09;轉換為JSON字符串。這個功能對于需要將表格數據輸出為JSON格式的場景…

《解鎖前端潛力:自動化流程搭建秘籍》

當項目逐漸從萌芽走向繁茂&#xff0c;中期階段對流程優化與效率提升的需求便愈發迫切。搭建一套自動化測試、持續集成與部署的完整流程&#xff0c;已然成為突破瓶頸、保障代碼質量與上線效率的關鍵密鑰。這不僅是技術的進階&#xff0c;更是思維與協作模式的革新。在踏上構建…

計算機體系結構中的片上系統SoC是什么?

計算機體系結構中的片上系統SoC是什么&#xff1f; 片上系統&#xff08;SoC&#xff0c;System on Chip&#xff09; 是一種將計算機或其他電子系統的多個關鍵組件集成到單一芯片上的集成電路設計。它不僅僅是處理器&#xff08;CPU&#xff09;&#xff0c;而是將處理器、內…

linux虛擬機基礎-磁盤擴容詳細版本模擬實驗

擴容實驗參考上一篇博客&#xff1a; https://blog.csdn.net/wenxiaocsdn/article/details/141932877?spm1001.2014.3001.5502 LVM基礎知識附錄紅帽官方文檔 配置和管理邏輯卷 | Red Hat Enterprise Linux | 8 | Red Hat Documentation LVM邏輯結構圖 LVM 管理命令速查表&…

hbase高可用部署

要實現HBase集群的高可用部署&#xff08;High Availability, HA&#xff09;&#xff0c;核心在于消除單點故障&#xff08;特別是HMaster節點&#xff09;&#xff0c;并確保數據冗余和服務自動恢復。以下是、關鍵步驟和配置要點&#xff1a; 一、核心配置步驟? ?1.1 啟用…

STM32F103ZET6開發板【項目工程創建】+具體實現步驟流程

硬件介紹 芯片為STM32F103ZET6 STM32F103 資源簡介 STM32 的優異性 1&#xff0c;超低的價格。8 位機的價格&#xff0c;32 位機的性能&#xff0c;是 STM32 最大的優勢。 2&#xff0c;超多的外設。STM32 擁有包括&#xff1a;FMC、TIMER、SPI、IIC、USB、CAN、IIS、SDIO、…

CyberGlove觸覺反饋手套遙操作機器人靈巧手解決方案

CyberGlove觸覺反饋手套確實可以實時捕捉運動信號和觸覺反饋&#xff0c;并將其重新定位到人形機器人上。CyberGlove觸覺反饋手套遙操作機器人是通過手套上的傳感器捕捉手部動作&#xff0c;將信號傳輸給機器人&#xff0c;同時接收機器人反饋的觸覺信息&#xff0c;實現遠程操…

[C#]C# winform部署yolov13目標檢測的onnx模型

yolov13官方框架&#xff1a;github.com/iMoonLab/yolov13/releases/tag/yolov13 【測試環境】 vs2019 netframework4.7.2 opencvsharp4.8.0 onnxruntime1.16.3 【效果展示】 【調用代碼】 using System; using System.Collections.Generic; using System.ComponentMode…

創客匠人 AI 賦能:創始人 IP 打造的效率革命與信任重構

在注意力經濟時代&#xff0c;創始人 IP 面臨內容生產效率與信任構建的雙重挑戰。創客匠人 2025 年戰略升級為 “IP 變現整體解決方案服務商”&#xff0c;其推出的 AI 銷售信、免訓數字人、智能客服三大工具&#xff0c;正通過技術重構破解行業痛點&#xff0c;為知識變現開辟…

飛輪儲能VSG控制策略輔助雙饋風機一次調頻的仿真模型研究

以下是為您撰寫的《飛輪儲能VSG控制策略輔助雙饋風機一次調頻的仿真模型研究》技術報告,包含完整的理論分析、控制策略設計及MATLAB/Simulink仿真實現細節: 飛輪儲能VSG控制策略輔助雙饋風機一次調頻的仿真模型研究 摘要 針對雙饋感應發電機(DFIG)參與電網一次調頻時存在…

臨床開發計劃:從實驗室到市場的戰略藍圖

一、臨床開發計劃概述 1.1 定義與重要性 1.1.1 CDP核心定義 臨床開發計劃(CDP)是藥物、生物制品或醫療器械從實驗室走向市場的核心路線圖,詳細規劃臨床研究及其策略、時間表和資源需求,以滿足監管機構審批要求。 1.1.2 指導意義 CDP為開發團隊提供清晰指引,指導資源規劃…

【大模型實戰】微調Qwen2.5 VL模型,增強目標檢測任務。

文章目錄 制作數據集使用微調的模型制作數據集 制作數據集 這個章節將詳細解析一個將Labelme標注數據集轉換為Qwen2.5-VL模型訓練格式的Python腳本。該工具實現了圖像大小調整、邊界框坐標轉換和數據格式標準化等功能。生成適用Qwen2.5-VL的數據集。 核心功能概述 圖像處理&a…

【python實用小腳本-118】基于Flask的用戶認證系統:app.py、forms.py與user.py解析

在當今的網絡應用中&#xff0c;用戶認證是一個不可或缺的功能。無論是社交平臺、電商平臺還是企業管理系統&#xff0c;都需要確保只有授權用戶才能訪問特定的資源。本文將詳細介紹一個基于 Flask 框架的用戶認證系統&#xff0c;該系統由三個主要文件組成&#xff1a;app.py、…

phpstudy apache偽靜態.htaccess文件置空丟失問題解決

phpstudy apache偽靜態.htaccess文件置空丟失 在使用phpstudy本地部署項目的時候&#xff0c;創建網站-根目錄選擇public等運行目錄&#xff0c;并且點擊確認后&#xff0c;會碰到原本項目中的apache偽靜態.htaccess文件被置空丟失的問題&#xff0c;導致項目無法正常訪問。 解…