一,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;导致项目无法正常访问。 解…