docker镜像缺少一个包怎么解决 如何设置Docker容器中Java应用的内存限制?
如何设置Docker容器中Java应用的内存限制?
如果使用官方的Java映像或者基于Java映像的Docker映像,那么通过传递JAVA_OPTS环境变量就可以很容易地设置JVM的内存参数。例如,对于官方的Tomcat映像,我们可以执行以下命令。启动最大内存为512M的tomcat实例。
docker run-RM-e JAVA _ OPTS-xmx 512m Tomcat:8
在日志中,我们可以清楚地发现设置已经生效 "命令行参数:-xmx 512m "。
2016年4月2日12:46:26.970信息[主]服务器版本:阿帕奇Tomcat/8.0.32
April 2, 2016 12:46:26.974 Information [main] server has been built : February 2, 2016 19:34:53 UTC.
02-Apr-2016 12:46:26.975 Information [Primary] ServerNo. : 8.0.32.0
April 2, 2016 12:46:26.975 Information [main] operating system name : Linux
2016年4月2日12:46:26.975信息[主]操作系统版本: 4.1.19-boot2docker
April 2, 2016 12:46:26.975 Information [Main] Architecture : amd64
02-Apr-2016 12:46:26.975 INFO[main]Java Home:/usr/lib/JVM/Java-7-open JDK-amd64/JRE
April 2, 2016 12:46:26.976 Information [Main] JVM Version : 1.7.0_95-b00
April 2, 2016 12:46:26.976 Information [main] JVM supplier : Oracle Bone Inscriptions Company
2016年四月2日12:46:26.977信息[main]CATALINA _ BASE:/usr/local/Tomcat
April 2, 2016 12:46:26.977 Information [Main] Catalina _ Home Page : /usr/local/tomcat
02-apr-201612 : 46 : 26.978 info [main] command line parameters :
02-apr-201612 : 46 : 26.978 info [main] command line parameters :
2016年4月2日12:46:26.978信息[主]命令行参数: -Xmx512m
...
但是,在Docker集群上部署和运行Java容器应用时,仅仅设置JVM的堆参数是不够的,我们还需要限制Docker容器的内存资源:
1.限制容器使用的最大内存量,以防止损坏系统或其他应用程序。
容器可以被调度到一个有足够空闲内存的节点上,从而保证应用程序所需的运行资源。
关于容器的资源分配约束,Docker提供了相应的启动参数。
对于内存,最基本的是通过-m参数限制容器使用的内存大小。
-m,-Memory
怎么把docker从一个虚拟机迁移到另一个虚拟机?
不请自来
这个比较简单,方法很多。最简单的就是把镜像做成一个tar包,然后上传到另一个虚拟机,再加载进去。
1、镜面焦油包。
docker图像| grep dockerfly
以dockerfly图像为例。dockerfly是docker WEB管理界面。
docker save-o ./docker fly . tar hely ho/docker fly
它已经在根目录中被键入为一个tar包。
2.通过sftp命令将tar包上传到另一个服务器。
Science for the people is a science that serves mankind.
现在dockerfly.tar
它已被上传到另一台服务器。
3.将打包的镜像tar包加载到另一台服务器的docker中。
docker load-I/root/docker fly . tar
docker图像| grep dockerfly
它已被装入一个新的docker容器。
好了,到目前为止,docker镜像迁移已经完成,从一台服务器迁移到另一台服务器相对容易。有问题请在评论区留言互动,共同学习,共同进步。谢谢大家!
尝试将DockerRootDir。一般来说,默认是/var/lib/docker目录到另一个虚拟机的相同目录。复制的话要用rsync -aXS,有的存储驱动会有问题。你可以去尝试。
有几种方法,一种是导出镜像包,另一种是构建镜像上传到镜像仓库,然后拉到另一个虚拟机上。第三种方法是使用dockerfile构建映像,只需迁移dockerfile并构建即可。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。