docker运行javaWeb服务,操作文件异常
一、问题由来
部署一个测试服务在自己的服务器上面,然后运行其中的一个功能。然后报错,报错信息如下

二、问题分析
自己一开始也很疑惑,怎么会出现这个问题呢,自己明明把对应的文件放在对应的目录下面,并且已经解压。

如果所示,理论上来说不应该啊。可是程序运行的时候,确确实实地出现了该问题。经过自己仔细分析,发现容器
中的环境和linux服务器上面的环境是不一样的。自己在Linux服务器上面创建得有对应的目录,可是在容器中不一定会有该目录,
容器时一个独立的环境。
三、解决方案
自己在对应的目录下面创建一个新的目录,将之前的文件全部移动到当前目录下来。然后使用路径挂载的方式,将当前这个目录
中的文件挂载到容器中,这样就可以解决这个问题,如下图所示,

然后设置配置文件中的挂载路径如下,

启动项目时命令如下,使用路径挂载,
docker run -d -p 8081:8081-v /opt/u01/exam/java:/project -e JVM_XMS=256m -e JVM_XMX=256m \
--name webbackend openjdk:8 \
java -jar /project/WebBackend.jar
参数解释
-e JVM_XMS=256m 表示启动时的内存
-e JVM_XMX=256m 表示运行时的最大内存
启动之后,内存也还比较富余,不至于让服务器内存挂掉。

最终测试效果如下。

下载的文件示例如下。

总结:使用docker运行服务时,一定要注意服务器上面的环境和容器内的环境是不一样的,因此
在使用带有路径的各种操作时,一定需要特别注意路径如何挂载的问题!!!
docker运行javaWeb服务,操作文件异常的更多相关文章
- eclipse 使用tomcat运行JavaWeb项目,文件修改后为何不用重启tomcat? (运行web项目的4种方式)探究
1.情景说明 在eclipse中,为什么Java文件修改后,重启tomcat class文件才能生效? 为什么jsp修改后,不需重启tomcat就能立即生效? 为什么静 ...
- docker 运行没有权限执行文件解决
docker运行挂载主系统目录,导致无法启动configuration error: open /etc/docker/registry/config.yml: permission denied 提 ...
- ubuntu 中安装jenkins,基于docker运行jenkins
本文是在ubuntu环境下安装jenkins,jenkins运行在docker容器中,至于docker如何安装,本文不再描述,大家可以上网查询下,如何安装docker,下面先放上一个使用jenkin ...
- deno学习四 docker 运行官方的一个http file server
github 上已经有人搞了一个deno 的docker 镜像,是基于源码编译的,挺好的 所以结合官方的http server demo 使用docker 运行 环境准备 docker-compose ...
- 庐山真面目之九微服务架构 NetCore 基于 Docker 基础镜像和挂载文件部署
庐山真面目之九微服务架构 NetCore 基于 Docker 基础镜像和挂载文件部署 一.简介 我们在上一篇文章<庐山真面目之八微服务架构 NetCore 基于 Dockerfile ...
- [19/10/16-星期三] Python中的模块和包、异常、操作文件
一.模块 # 模块(module) # 模块化,模块化指将一个完整的程序分解为一个一个小的模块 # 通过将模块组合,来搭建出一个完整的程序 # 不采用模块化,统一将所有的代码编写到一个文件中 # 采用 ...
- docker 运行jenkins及vue项目与springboot项目(五.jenkins打包springboot服务且在docker中运行)
docker 运行jenkins及vue项目与springboot项目: 一.安装docker 二.docker运行jenkins为自动打包运行做准备 三.jenkins的使用及自动打包vue项目 四 ...
- java io流 运行错误时,保存异常到文件里面
java io流 运行错误时,保存异常到文件里面 下面这个实例,运行后,输入数字,为正确,如果输入字符串,则报错,保存错误信息 //运行错误时,保存异常到文件里面 //下面这个实例,运行后,输入数字, ...
- docker 中运行 redis 服务
先使用 dockerfile 创建一个 redis 容器 FROM ubuntu:latest RUN apt-get update RUN apt-get -y install redis-serv ...
- ASP.NET CORE做的网站运行在docker上(不用dockerfile文件部署)
按网上的做法用dockerfile文件是可以弄得出来的,http://www.docker.org.cn/article/119.html, 不过我想把网站文件放在外面硬盘目录,再映射进去,这样只要在 ...
随机推荐
- Qt开发技术:QtCharts(一)QtCharts基本介绍以及图表框架详解
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...
- Java JVM——3.运行时数据区概述及线程
运行时数据区概述 在JVM 中的位置 内部划分 当我们通过前面的:类的加载 → 验证 → 准备 → 解析 → 初始化 这几个阶段完成后,执行引擎就会对我们的类进行使用,同时执行引擎将会使用到我们的运行 ...
- 单继承,多继承,菱形继承---day21
1.单继承 # ### 继承:一个类除了自身所有用的属性方法之外,还获取了另外一个类的成员属性和方法 ''' 一个类继承另外一个类,那么该类就是子类(衍生类),被继承的这个类就叫做父类(基类,超类) ...
- python中partial用法
应用 典型的,函数在执行时,要带上所有必要的参数进行调用.然后,有时参数可以在函数被调用之前提前获知.这种情况下,一个函数有一个或多个参数预先就能用上,以便函数能用更少的参数进行调用. 示例pyqt5 ...
- 在矩池云安装使用PaddleHub 和 PaddlePaddle
之前在安装 PaddleHub 导入的时候遇到各种错误,不是这个包没这个模块,就是哪个包没这个属性 ...很头痛,网上也没有 PaddleHub 和 PaddlePaddle 对应的版本,只能自己慢慢 ...
- 【教程】navicat配合HTTP通道远程连接SQLite数据库
前言 缘由 好奇的我想查看服务器上宝塔面板的SQLite数据库 久别一月,特来水文.起因是我看到服务器上搭建的宝塔面板,好奇其中使用的SQLite数据库,想用navicat远程连接看一下,奈何不会玩, ...
- nginx应用及性能调优
1. Nginx 反向代理实现 说反向代理之前 先说什么是正向代理, 正向代理是指客户端通过 代理服务器访问目标服务器,客户端直接访问代理服务器,在由代理服务器访问目标服务器并返回客户端并返回 . 例 ...
- 字典嵌套列表 与 列表嵌套字典 导出为csv 的方法
字典嵌套列表 导出csv {'rank': ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '1 ...
- elementPlus配合vue-router搭建后台系统菜单模块
设置menuType来区分菜单类型 /** * @params menuType * -1 一般为首页 / -> /home 只显示第一个子项 * -2 为无子菜单的菜单项 /config -& ...
- 清除 gitee.io 页面强缓存 Chrome浏览器 F12 找到页面 右键 Clear browser cache
清除 gitee.io 页面强缓存 Chrome浏览器 F12 找到页面 右键 Clear browser cache