docker如何将jar包生成镜像并将宿主机目录挂载

 更新时间:2023年08月23日 15:04:35   作者:D·A·I  
这篇文章主要介绍了docker如何将jar包生成镜像并将宿主机目录挂载问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

docker将jar包生成镜像并将宿主机目录挂载

实现原理

先利用jar包生成一个镜像文件,然后docker启动即可

编写dockerfile

# 基础镜像 
# 指定要构建的spring boot服务镜像的基础源镜像是java,版本是8;如果本地没有java:8的镜像,就会从dockerHub下载。一般首次下载,以后就不会下载了。
FROM  openjdk:8-jre
# author
MAINTAINER dwl
# 时区问题 解决docker 容器中的时候和宿主机统一
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
# jar包挂载目录
VOLUME /app/sh
# 创建目录
RUN mkdir -p /app/sh
# 宿主机文件挂载目录
VOLUME /home/kxyjy
# 指定路径
WORKDIR /app/sh
# 复制jar文件到路径
COPY ./sh-modules-alarm.jar /app/sh/sh-modules-alarm.jar
# 启动系统服务
ENTRYPOINT ["java","-jar","sh-modules-alarm.jar"]

构建镜像

docker build -t sh-alarm:1.0.0 .

启动容器

运行该镜像

docker run --name sh-alarm -d -v /home/kxyjy:/home/kxyjy --privileged=true --network=host 23ea

参数说明

1、Docker运行一个容器后,进入容器,cd /home/kxyjy 挂载目录会报错

cannot open directory '.': Permission denied

解决办法:

docker run时加一个参数

--privileged=true

若是用DockerCompose启动,则在docker-compose.yml中添加以下配置

privileged: true

2、-v /home/kxyjy:/home/kxyjy容器挂载在宿主机的目录

3、–network=host指向宿主机ip

docker制作jar镜像

第一步

首先在你存放jar包 目录下 创建Dockerfile 文件

touch Dockerfile

第二步

编写制作镜像的命令文件也就是Dockerfile文件

vi Dockerfile
#指定以jdk 为基础镜像,来构建此镜像,可以理解为运行的需要基础环境
FROM majiajue/jdk1.8
#maintainer 指令 作者是xxx
MAINTAINER xxx
#将当前demo.jar 复制到容器根目录下
ADD /home/auth/ymf-auth.jar /home/auth/ymf-auth.jar
#暴露容器端口为8080 Docker镜像告知Docker宿主机应用监听了8080端口
EXPOSE 8080
#容器启动时执行的命令
CMD java -jar -server -Xms256m -Xmx256m -Xmn128m -Xss1m -XX:-UseAdaptiveSizePolicy -XX:MaxTenuringThreshold=15 -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError /home/auth/ymf-auth.jar >> /home/auth/logs/ymf-auth.out

第三步

使用docker build 构建镜像   ymf-auth  构建之后镜像名称 . 表示 Dockerfile 文件在当前目录下

docker build -t ymf-auth .   #有一个.符号哟

第四步

启动镜像

docker run --name demo -it
-v /home/auth:/home/auth #宿主机目录与容器目录映射 作用是只要更新宿主机jar包 相应的容器目录里的jar包也会更新
-v /etc/localtime:/etc/localtime # 宿主机时间同步容器时间
-d --restart=always ymf-auth

第五步

查看启动的容器

docker ps

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • docker部署CASSANDRA全过程

    docker部署CASSANDRA全过程

    本文介绍了如何使用Docker安装和运行Apache Cassandra,包括创建数据表、加载数据、以及进行交互式查询的基本步骤
    2025-01-01
  • CentOS 7.9 安装 docker20.10.12的过程解析

    CentOS 7.9 安装 docker20.10.12的过程解析

    这篇文章主要介绍了CentOS 7.9 安装 docker20.10.12 的相关资料,安装软件包时卸载旧软件包,如果已经安装这些程序,请卸载他们以及相关的依赖项,本文给大家介绍的非常详细,需要的朋友可以参考下
    2022-10-10
  • Jenkins+Docker 一键自动化部署 SpringBoot 项目的详细步骤

    Jenkins+Docker 一键自动化部署 SpringBoot 项目的详细步骤

    这篇文章主要介绍了Jenkins+Docker 一键自动化部署SpringBoot 项目,本文章实现最简单全面的Jenkins+docker+springboot 一键自动部署项目,步骤齐全,少走坑路,需要的朋友可以参考下
    2022-08-08
  • Docker容器之间的通信的方法实现

    Docker容器之间的通信的方法实现

    本文主要介绍了Docker容器之间的通信的方法实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • Docker简单安装与应用入门教程

    Docker简单安装与应用入门教程

    这篇文章主要介绍了Docker简单安装与应用,结合实例形式分析了Docker常见的安装、应用构建、终端访问等操作相关实现技巧与注意事项,需要的朋友可以参考下
    2018-06-06
  • Docker概述与安装方法

    Docker概述与安装方法

    本文主要介绍了Docker的基本概念、发展历程、关键技术演进、架构及安装、配置、使用、镜像管理等以及性能优化等内容,结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2026-04-04
  • Docker Desktop镜像源配置全过程

    Docker Desktop镜像源配置全过程

    文章总结:文章主要介绍了如何配置Docker引擎镜像,包括打开配置页面、定位镜像配置位置、替换镜像内容以及测试镜像是否可用,作者分享了个人经验,旨在帮助读者理解并操作Docker镜像配置,同时鼓励大家支持脚本之家
    2026-01-01
  • Shell脚本构建Docker 半自动化编译打包发布应用操作

    Shell脚本构建Docker 半自动化编译打包发布应用操作

    这篇文章主要介绍了Shell脚本构建Docker 半自动化编译打包发布应用操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Docker容器镜像生成的三种方法详解

    Docker容器镜像生成的三种方法详解

    本文介绍了三种生成Docker镜像的方法:1)使用Dockerfile配合docker build命令;2)通过docker-compose.yml文件构建;3)借助docker-maven-plugin插件,以h2数据库为例,详细说明了Dockerfile编写要点和各方法的实现步骤,需要的朋友可以参考下
    2026-04-04
  • Windows Server 2012 R2 安装 Docker的详细步骤

    Windows Server 2012 R2 安装 Docker的详细步骤

    这篇文章主要介绍了Windows Server 2012 R2 安装 Docker,在这个给大家说明下使用windows10、Windows Server 2016以上系统可直接使用安装包,低版本系统需要使用 Docker Toolbox 来进行安装使用 Docker,需要的朋友可以参考下
    2022-04-04

最新评论