springboot设置运行内存_Docker 如何运行多个 Springboot?

docker 如何运行多个Springboot ?

第一个:端口映射
第二个:指定内存大小
第三个:读取、写入物理文件
第四个:日志文件
第五个:多个容器内部网络访问
第六个:遇到的问题

e0d7512966a022554d8630849e167ff6.png

第一个:端口映射

Nginx使用的是转发,那么这个是最简单的。

[hn@iZbp1gp1t778obaz5m8vk8Z guides]$ docker run -d -p 8093:8093 guides-collect 将物理的端口映射为虚拟的端口即可,这个很简单

第二个:指定内存大小

-m,--memory                  内存限制,格式是数字加单位,单位可以为 b,k,m,g。最小为 4M--memory-swap                内存+交换分区大小总限制。格式同上。必须比-m设置的大--memory-reservation         内存的软性限制。格式同上--oom-kill-disable           是否阻止 OOM killer 杀死容器,默认没设置--oom-score-adj              容器被 OOM killer 杀死的优先级,范围是[-1000, 1000],默认为 0--memory-swappiness          用于设置容器的虚拟内存控制行为。值为 0~100 之间的整数--kernel-memory              核心内存限制。格式同上,最小为 4M
样例: [hn@iZbp1gp1t778obaz5m8vk8Z guides]$ docker run -d -m 1G --memory-swap 4G -p 8093:8093 guides-collect

第三个:读取物理文件、写入物理文件

上面两个情况启动时就加载,但是运行时需要不断读取本地文件该怎么办嘞 ?

[hn-docker@iZbp1gp1t778obaz5m8vk8Z ~]$ docker run -d -m 1G --memory-swap 4G -p 8092:8092 -v /home/hn-docker/docker/wechat:/springboot/wechat guides-message message容器的启动相当于是先从把镜像内的文件地址,映射到物理机器上的地址;如镜像地址:/springboot/wechat物理地址:/home/hn-docker/docker/wechat

Bind mounts

Bind mounts模式和Volumes非常相似,不同点在于Bind mounts模式是将宿主机上的任意文件或文件夹挂载到容器,而Volumes本质上是将Docker服务管理的一块区域(默认是/var/lib/docker/volumes下的文件夹)挂载到容器。

Bind mounts的使用和Volumes类似,也是通过-v或--mount参数将宿主机文件挂载容器中。下面是一个例子:

使用--mount参数时,需要指定type=bind:

$ docker run -d  --name=nginxtest  --mount type=bind,source=/usr/local/web,destination=/usr/share/nginx/html  nginx:latest

上面的例子将宿主机上的/usr/local/web文件夹挂载到容器中的/usr/share/nginx/html文件夹。

或者使用-v参数:

$ docker run -d  --name=nginxtest  -v /usr/local/web:/usr/share/nginx/html  nginx:latest
673fe34d1b3f881dd034a8168b67a813.png

第四个:日志文件

第一步:先获取运行容器的ID:da3199e9d032         [hn@iZbp1gp1t778obaz5m8vk8Z guides]$ docker psCONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMESda3199e9d032        guides-collect      "java -Djava.secur..."   2 hours ago         Up 2 hours          0.0.0.0:8093->8093/tcp   sharp_mirzakhani 第二步:查询运行日志 - 搞定[hn@iZbp1gp1t778obaz5m8vk8Z guides]$ docker logs -f 51c384b8afee

参考信息:

命令格式:

$ docker logs [OPTIONS] CONTAINER  Options:        --details        显示更多的信息    -f, --follow         跟踪实时日志        --since string   显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)        --tail string    从日志末尾显示多少行日志, 默认是all    -t, --timestamps     显示时间戳        --until string   显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)

例子:

查看指定时间后的日志,只显示最后100行:

$ docker logs -f -t --since="2018-02-08" --tail=100 CONTAINER_ID

查看最近30分钟的日志:

$ docker logs --since 30m CONTAINER_ID

查看某时间之后的日志:

$ docker logs -t --since="2018-02-08T13:23:37" CONTAINER_ID

查看某时间段日志:

$ docker logs -t --since="2018-02-08T13:23:37" --until "2018-02-09T12:23:37" CONTAINER_ID

第五个:宿主机与容器网络交互

问题描述:当你docker内运行的springboot想访问宿主机的Redis、获取其他容器的MySQL时,朋友你是否傻眼了

解决方案:需要查询到宿主机容器的软连接ip,使用内网ip访问就ok了 docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' xxxid   (容器id) 例如:[yn@iZbp1gp1t778obaz5m8vk8Z logs]$ docker ps -aCONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMESabe77b60254a        assistant            "java -Djava.secur..."   6 minutes ago       Up 6 minutes        0.0.0.0:9304->8091/tcp   nostalgic_albattani37c6dd777636        collect              "java -Djava.secur..."   30 hours ago        Up 30 hours         0.0.0.0:8093->8093/tcp   silly_poincare4dcb9fcae281        message              "java -Djava.secur..."   3 days ago          Up 3 days           0.0.0.0:8092->8092/tcp   reverent_galileo 比如要查:abe77b60254a 这个容器的网络地址[yn@iZbp1gp1t778obaz5m8vk8Z logs]$ docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' abe77b60254a172.17.0.4 这个时候:abe77b60254a 这个容器的IP地址就是:172.17.0.4想访问就走内网地址 172.17.0.4 即可同时也可得知宿主机的IP就应该是 172.17.0.1

第六个:你会遇到的坑

一:镜像启动失败,然后怎么看日志

启动失败后,需要知道是哪个镜像的ID、然后用日志去查:docker logs -f 镜像id

例如:[yn@iZbp1gp1t778obaz5m8vk8Z logs]$ docker ps -aCONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMESabe77b60254a        assistant            "java -Djava.secur..."   6 minutes ago       Up 6 minutes        0.0.0.0:9304->8091/tcp   nostalgic_albattani37c6dd777636        collect              "java -Djava.secur..."   30 hours ago        Up 30 hours         0.0.0.0:8093->8093/tcp   silly_poincare4dcb9fcae281        message              "java -Djava.secur..."   3 days ago          Up 3 days           0.0.0.0:8092->8092/tcp   reverent_galileo 查这个容器日志最新的10行[yn@iZbp1gp1t778obaz5m8vk8Z ~]$ docker logs -f -t --tail 10 abe77b60254a   

二:日志时间或者数据存储至数据库比实际时间小8个小时

RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
5e36342586992b61e32576d328e4e967.png

作者:悟能的师兄

原文链接:https://blog.csdn.net/yexiaomodemo/article/details/110263394

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/472979.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

7.应用

本章应与 app(4) 和 application(3) 。 应用的概念 当我们写了实现特定功能的代码之后,我们可能想将代码转成一个 应用 (application),这是可以作为一个单元启动和停止的组建,同时它也可以在其他系统中被重用。 我们要…

LintCode 1915. 举重(01背包)

文章目录1. 题目2. 解题1. 题目 奥利第一次来到健身房,她正在计算她能举起的最大重量。 杠铃所能承受的最大重量为maxCapacity,健身房里有 n 个杠铃片,第 i 个杠铃片的重量为 weights[i]。 奥利现在需要选一些杠铃片加到杠铃上,使…

python实现简单线性回归和多元线性回归算法

1、问题引入 在统计学中,线性回归是利用称为线性回归方程的最小二乘函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或多个称为回归系数的模型参数的线性组合。一个带有一个自变量的线性回归方程代表一条直线。我们需要对线性回归结…

form表单通过checkbox_飞冰表单解决方案 - FormBinder

前言中后台业务场景中,表单是一种很常见的与用户交互的方式,从业务角度看,表单主要是收集用户的信息,而从技术角度看,作为一个通用型的组件,它要解决的问题无非就是三个:把一个初始数据对象扔给…

@data 重写set方法_C#中的类、方法和属性

这节讲C#中的类,方法,属性。这是面向对象编程中,我们最直接打交道的三个结构。类:类(class)是面向对象中最基本的单元,它是一种抽象,对现实世界中事物的抽象,在C#中使用class关键字声明一个类&a…

Docker安装+镜像拉取+容器+创建镜像+push to docker hub

文章目录1. 安装2. 镜像操作3. 容器4. docker hub本文参考:https://zhuanlan.zhihu.com/p/23599229 1. 安装 参考 https://www.runoob.com/docker/ubuntu-docker-install.html curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun测试&#xff…

自然语言处理-LDA主题模型

LDA主题模型 哈尔滨工程大学-537 一、LDA主题模型简介 LDA(Latent Dirichlet Allocation)中文翻译为:潜在狄利克雷分布。LDA主题模型是一种文档生成模型,是一种非监督机器学习技术。它认为一篇文档是有多个主题的,而每个主题又对应着不同的词…

css 百分比 怎么固定正方形_你未必知道的49个CSS知识点

本文的每一条,都是我曾经发过的掘金沸点,其中有很多条超过了百赞(窃喜)。鉴于时不时有童鞋翻我以前的沸点,因此,本文收集了个人目前发过的所有CSS知识点动图,以便阅读。需要说明的是,顺序仍是按当时发布顺序…

CSS 实现加载动画之五-光盘旋转

今天做的这个动画叫光盘旋转,名字自己取的。动画的效果估计很多人都很熟悉,就是微信朋友圈里的加载动画。做过前面几个动画,发现其实都一个原理,就是如何将动画的元素如何分离出来。这个动画的实现也很简单,关键点在于…

css hover变成手_web前端入门到实战:彻底掌握css动画「transition」

马上就2020年了,不知道小伙伴们今年学习了css3动画了吗?说起来css动画是一个很尬的事,一方面因为公司用css动画比较少,另一方面大部分开发者习惯了用JavaScript来做动画,所以就导致了许多程序员比较排斥来学习css动画(…

用Docker部署TensorFlow Serving服务

文章目录1. 安装 Docker2. 使用 Docker 部署3. 请求服务3.1 手写数字例子3.2 猫狗分类例子参考: https://tf.wiki/zh_hans/deployment/serving.html# https://tensorflow.google.cn/tfx/serving/docker 1. 安装 Docker 以下均为 centos7 环境 参考文章&#xff1a…

K-Means算法和K-Means++算法的聚类

在构成圆形的30000个随机样本点上,设置7个簇,使用K-Means算法聚类 from math import pi, sin, cos from collections import namedtuple from random import random, choice from copy import copy import matplotlib.pyplot as plt import numpy as np…

convert.todatetime指定日期格式_MATLAB的时间与日期

7 日期和时间MATLAB在2014b版本中将日期和时间独立成了一个数据类型,新的版本中对于时间数据的处理功能更为强大。比如datetime和duration等函数,可以支持对时间的高效计算、对比、格式化显示。对这类数组的操作方法和对普通数组的操作是基本一致的。下…

dategurd oracle_Oracle 时间和日期处理

-- Oracle时间SELECT SYSDATE FROM dual; -- 系统时间SELECT SYSTIMESTAMP FROM dual; -- 当前系统时间戳SELECT CURRENT_TIMESTAMP FROM dual; -- 与时区设置有关,返回的秒是系统的,返回的日期和时间是根据时区转换过的SELECT current_date FROM dual; …

关于有多个Fragment中的textview跑马灯问题

问题描述一个activity里面有多个Fragment,1,2,3,4其中fragment1中有2个textview,在第一次启动fragment1的时候跑马灯能正常跑马; 当跳转到其他fragment后,再回到fragment1的时候,跑马灯已经不跑马了?关于这个是textview的焦点问题吗?求大神解答,,,求大神解决.... 解决方案1应…

跨设备链路聚合_路由与交换技术(华为设备)第五讲---链路聚合

前言:随着网络规模不断扩大,用户对骨干链路的带宽和可靠性提出了越来越高的要求。在传统技术中,常用更换高速率的接口板或更换支持高速率接口板的设备的方式来增加带宽,但这种方案需要付出高额的费用,而且不够灵活。采…

电影评论分类:二分类问题

根据电影评论的 文字内容将其划分为正面或负面。 使用IMDB 数据集,它包含来自互联网电影数据库(IMDB)的50 000 条严重两极分 化的评论。数据集被分为用于训练的25 000 条评论与用于测试的25 000 条评论,训练集和测试 集都包含50%…

TensorFlow 2.0 - tf.distribute 分布式训练

文章目录1. 单机多卡 MirroredStrategy2. 多机训练 MultiWorkerMirroredStrategy3. TPU 张量处理单元学习于:简单粗暴 TensorFlow 2 1. 单机多卡 MirroredStrategy # 分布式训练 import tensorflow as tf import tensorflow_datasets as tfds# 1 单机多卡 Mirrore…

python抽象基类的作用_Python:多态、鸭子模型和抽象基类

1. 多态什么是多态-- 多态,指的是一种事务具有多种形态;-- python是一种动态语言,默认支持多态,同一个方法 调用 不同的类对象 ,执行的 结果各不相同;多态实现-- 继承:不同子类 继承 同一父类&a…

非抢占式优先级调度算法_华为鸿蒙操作系统内核真面目之抢占式和非抢占式内核...

华为鸿蒙操作系统内核真面目之抢占式和非抢占式内核众所周知华为鸿蒙操作系统内核是Linux内核。而Linux内核即是抢占式内核也是非抢占式内核。设置软件优先级在优先级在0-99之间是抢占式优先级。设置优先级在100-139之间是非抢占式优先级。从华为官方发布的信息--优先级高的任务…