学习dockerfile以及docker-compose总结,以及控制内存的方式
之前部署springboot的时候都是一个一个启动的,当给用户部署几十个容器的时候,发现太累了,所以学习了docker-compose来一键部署1:先创建dockerfileFROM openjdk:8-jre-alpineMAINTAINERzhangwei#容器运行时监听的端口WORKDIR /usr/localENTRYPOINT ["java","-XX:+Unl...
·
之前部署springboot的时候都是一个一个启动的,当给用户部署几十个容器的时候,发现太累了,所以学习了docker-compose来一键部署
1:先创建dockerfile
FROM openjdk:8-jre-alpine
MAINTAINER zhangwei
#容器运行时监听的端口
WORKDIR /usr/local
ENTRYPOINT ["java","-XX:+UnlockExperimentalVMOptions","-XX:+UseCGroupMemoryLimitForHeap","-jar","-jar","/usr/local/game-dtc.jar"]
2:编写docker-compose
version: "2" #版本号
services:
dtc-server: #服务名称
build:
context: .
dockerfile: DockerfileDTCserver
networks:
- compose
ports:
- "11104:11104" #暴露的端口信息和docker run -d -p 80:80 一样
restart: "always" #重启策略,能够使服务保持始终运行,生产环境推荐使用
container_name: dtc-server #容器名称
#挂载文件ps:如果是挂载文件必须在容器中也指定名称,推荐是挂载文件夹,下面只是做个文件挂载的案例也可以
#挂载文件夹/root/compose_test/jdk/:/data
volumes:
- /usr/local/project/dtc-server/dtc-server.jar:/var/local/dtc-server.jar
- /etc/localtime:/etc/localtime
mem_limit: 700m #最大内存使用不超过700m
entrypoint: java -jar /var/local/dtc-server.jar #启动容器后执行的命令
game-dtc: #服务名称
build:
context: .
dockerfile: DockerfileGameDTC
networks:
- compose
ports:
- "11103:11103" #暴露的端口信息和docker run -d -p 80:80 一样
restart: "always" #重启策略,能够使服务保持始终运行,生产环境推荐使用
container_name: game-dtc #容器名称
#挂载文件ps:如果是挂载文件必须在容器中也指定名称,推荐是挂载文件夹,下面只是做个文件挂载的案例也可以
#挂载文件夹/root/compose_test/jdk/:/data
volumes:
- /usr/local/project/game-dtc/game-dtc.jar:/var/local/game-dtc.jar
- /etc/localtime:/etc/localtime
mem_limit: 700m #最大内存使用不超过700m
entrypoint: java -jar /var/local/game-dtc.jar #启动容器后执行的命令
其中mem_limit用于控制容器默认启动时会使用 1/16*物理内存的现象,导致几个服就占满了全部内存。
需要注意的是,当我使用1.24版本的时候,不支持mem_limit属性。所以我改成了1.19版本的。
更多推荐
已为社区贡献1条内容
所有评论(0)