docker鏡像缺少一個包怎么解決 如何設置Docker容器中Java應用的內存限制?
如何設置Docker容器中Java應用的內存限制?如果使用官方的Java映像或者基于Java映像的Docker映像,那么通過傳遞JAVA_OPTS環(huán)境變量就可以很容易地設置JVM的內存參數。例如,對于
如何設置Docker容器中Java應用的內存限制?
如果使用官方的Java映像或者基于Java映像的Docker映像,那么通過傳遞JAVA_OPTS環(huán)境變量就可以很容易地設置JVM的內存參數。例如,對于官方的Tomcat映像,我們可以執(zhí)行以下命令。啟動最大內存為512M的tomcat實例。
docker run-RM-e JAVA _ OPTS-xmx 512m Tomcat:8
在日志中,我們可以清楚地發(fā)現設置已經生效 "命令行參數:-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.限制容器使用的最大內存量,以防止損壞系統或其他應用程序。
容器可以被調度到一個有足夠空閑內存的節(jié)點上,從而保證應用程序所需的運行資源。
關于容器的資源分配約束,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鏡像遷移已經完成,從一臺服務器遷移到另一臺服務器相對容易。有問題請在評論區(qū)留言互動,共同學習,共同進步。謝謝大家!
嘗試將DockerRootDir。一般來說,默認是/var/lib/docker目錄到另一個虛擬機的相同目錄。復制的話要用rsync -aXS,有的存儲驅動會有問題。你可以去嘗試。
有幾種方法,一種是導出鏡像包,另一種是構建鏡像上傳到鏡像倉庫,然后拉到另一個虛擬機上。第三種方法是使用dockerfile構建映像,只需遷移dockerfile并構建即可。