启动docker的时候如何把参数传递给docker里面的项目(推荐)

 更新时间:2024年01月20日 09:52:09   作者:猴样鬼相  
这篇文章主要介绍了启动docker的时候如何把参数传递给docker里面的项目,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

很多时候我们要把自己本地的项目打成一个docker镜像

大部分都是Tomcat或者现在很流行的springboot项目

如果只是带参数运行一个springboot项目是很简单的,如下

java -Dserver.port=8080 -jar xxx.jar

以上命令就把端口号设置为8080启动jar包,无需去改jar包里面的配置文件

但是如果已经把这个jar包打成了镜像之后,怎么传递呢

看下docker run的参数选项,里面有一个-e,环境变量

一开始被"环境"两个字误导了,以为就跟我们装JDK的时候说的环境变量是一个意思

其实也可以用来传递普通变量,如下

1,springboot项目

先改Dockerfile:

FROM java:8
ADD microsoft.jar /root
ENV PARAMS=""
ENTRYPOINT ["sh","-c","java $PARAMS -jar /root/microsoft.jar"]

构建镜像命令:

docker build -t 镜像名称 .

启动命令:

docker run -d -e PARAMS="-Dserver.port=8080" -p 2000:8080 镜像名称

这样jar包在启动的时候就会去读输入变量

2,Tomcat项目

Dockerfile:

 #基本镜像
    FROM centos   
    #把你上传的jdk放到docker容器里面的root目录下
    ADD jdk-8u11-linux-x64.tar.gz /root
    #把你上传的Tomcat放到docker容器里面的root目录下
    ADD apache-tomcat-7.0.57.tar.gz /root
    #设置环境变量
    ENV JAVA_HOME /root/jdk1.8.0_11  
    #设置环境变量
    ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar  
    #设置环境变量
    ENV CATALINA_HOME /root/apache-tomcat-7.0.57
    #设置环境变量
    ENV CATALINA_BASE /root/apache-tomcat-7.0.57
    #设置环境变量
    ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
    ENV PARAMS=""
    #执行startup.sh并打开日志
    ENTRYPOINT echo $PARAMS > /root/params.txt && /root/apache-tomcat-7.0.57/getParams.sh && /root/apache-tomcat-7.0.57/bin/startup.sh && tail -F /root/apache-tomcat-7.0.57/logs/catalina.out
 /root/params.txt     存放参数的TXT文件
getParams.sh     读取参数的脚本
startup.sh      读完参数启动Tomcat

启动命令:

docker run -d -e PARAMS="user=root&pwd=lw123" -p 2000:8080 params

这样Tomcat在启动之前就会先去处理你传递的参数,怎么处理就根据实际的业务来处理

到此这篇关于启动docker的时候怎么把参数传递给docker里面的项目的文章就介绍到这了,更多相关启动docker传递参数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 解决nacos启动时防火墙开启8848的坑

    解决nacos启动时防火墙开启8848的坑

    最近操作Nacos时遭遇8848端口无法访问的问题,尝试通过安全组和firewall配置仍无法解决,最终发现,firewall对Docker使用专门的作用域,需要在相应作用域下开放端口,务必检查firewall中针对Docker的设置,确保8848端口在正确的作用域内被允许通行
    2022-10-10
  • Docker常见命令介绍

    Docker常见命令介绍

    这篇文章介绍了Docker中的常见命令,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-03-03
  • Docker如何创建一个Jar服务容器

    Docker如何创建一个Jar服务容器

    这篇文章主要介绍了Docker如何创建一个Jar服务容器问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • linux和docker下mysql安装方式

    linux和docker下mysql安装方式

    本文详细介绍了在Linux系统中通过命令行安装MySQL的步骤,包括编辑yum源、下载并启动MySQL服务、登录和修改密码等操作,同时,文中也提供了在Docker环境下安装MySQL的流程,涵盖了拉取MySQL镜像、查看运行状态及登录MySQL的方法
    2024-09-09
  • 在Docker容器中部署MSSQL

    在Docker容器中部署MSSQL

    这篇文章介绍了在Docker容器中部署MSSQL的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • 解决docker数据文件过大导致根磁盘满的问题

    解决docker数据文件过大导致根磁盘满的问题

    本篇文章主要介绍了解决docker数据文件过大导致根磁盘满的问题,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-04-04
  • 关于docker部署fastapi项目以及日志挂载方式

    关于docker部署fastapi项目以及日志挂载方式

    这篇文章主要介绍了关于docker部署fastapi项目以及日志挂载方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • Docker与Golang的巧妙结合

    Docker与Golang的巧妙结合

    这篇文章主要介绍了Docker与Golang的巧妙结合的相关资料,需要的朋友可以参考下
    2016-10-10
  • 一篇文章弄懂Docker镜像的制作、上传、拉取和部署

    一篇文章弄懂Docker镜像的制作、上传、拉取和部署

    Docker包含三个基本概念,分别是镜像(Image)、容器(Container)和仓库(Repository),镜像是 Docker 运行容器的前提,这篇文章主要给大家介绍了如何通过一篇文章弄懂Docker镜像的制作、上传、拉取和部署的相关资料,需要的朋友可以参考下
    2021-08-08
  • 如何解决docker commit后镜像越来越大问题

    如何解决docker commit后镜像越来越大问题

    解决Docker Commit后镜像变大问题的方法:方法1直接打包容器并导入为镜像;方法2将容器根目录文件压缩后导入为镜像,方法1更优,在其他设备运行时可能出现内存不足错误
    2025-03-03

最新评论