Docker批量容器编排的实现
简介
Dockerfilebuildrun是手动操作单个容器,假如使用微服务架构,需要启动100+个容器,他们之间的依赖关系如何维护?
DockerCompose用来轻松高效地管理容器,定义运行多个容器。
三个步骤:
- Dockerfile
- Services&docker-compose.yml
- docker-composeup
初体验
1.Dockerfile
FROMpython:3.7-alpine WORKDIR/code ENVFLASK_APPapp.py ENVFLASK_RUN_HOST0.0.0.0 RUNapkadd--no-cachegccmusl-devlinux-headers COPYrequirements.txtrequirements.txt RUNpipinstall-rrequirements.txt COPY.. CMD["flask","run"]
2.Service
importtime
importredis
fromflaskimportFlask
app=Flask(__name__)
cache=redis.Redis(host='redis',port=6379)
defget_hit_count():
retries=5
whileTrue:
try:
returncache.incr('hits')
exceptredis.exceptions.ConnectionErrorasexc:
ifretries==0:
raiseexc
retries-=1
time.sleep(0.5)
@app.route('/')
defhello():
count=get_hit_count()
return'HelloWorld!Ihavebeenseen{}times.\n'.format(count)
docker-compose.yml
version:'3'
services:
web:
build:.
ports:
-"5000:5000"
volumes:
-.:/code
-logvolume01:/var/log
links:
-redis
redis:
image:redis
volumes:
logvolume01:{}
docker-composeup
Startingcompose-demo_web_1...done
Startingcompose-demo_redis_1...done
Attachingtocompose-demo_redis_1,compose-demo_web_1
redis_1|1:C12Sep202007:34:09.654#oO0OoO0OoO0OoRedisisstartingoO0OoO0OoO0Oo
redis_1|1:C12Sep202007:34:09.655#Redisversion=6.0.7,bits=64,commit=00000000,modified=0,pid=1,juststarted
redis_1|1:C12Sep202007:34:09.655#Warning:noconfigfilespecified,usingthedefaultconfig.Inordertospecifyaconfigfileuseredis-server/path/to/redis.conf
redis_1|1:M12Sep202007:34:09.657*Runningmode=standalone,port=6379.
redis_1|1:M12Sep202007:34:09.657#WARNING:TheTCPbacklogsettingof511cannotbeenforcedbecause/proc/sys/net/core/somaxconnissettothelowervalueof128.
redis_1|1:M12Sep202007:34:09.657#Serverinitialized
redis_1|1:M12Sep202007:34:09.658#WARNINGovercommit_memoryissetto0!Backgroundsavemayfailunderlowmemorycondition.Tofixthisissueadd'vm.overcommit_memory=1'to/etc/sysctl.confandthenrebootorrunthecommand'sysctlvm.overcommit_memory=1'forthistotakeeffect.
redis_1|1:M12Sep202007:34:09.658*LoadingRDBproducedbyversion6.0.7
redis_1|1:M12Sep202007:34:09.658*RDBage156seconds
redis_1|1:M12Sep202007:34:09.658*RDBmemoryusagewhencreated0.77Mb
redis_1|1:M12Sep202007:34:09.658*DBloadedfromdisk:0.000seconds
web_1|*ServingFlaskapp"app.py"
web_1|*Environment:production
web_1|WARNING:Thisisadevelopmentserver.Donotuseitinaproductiondeployment.
web_1|UseaproductionWSGIserverinstead.
web_1|*Debugmode:off
YML文件规则
version:"1.0"#版本
services:#服务列表
service1:
#服务配置
container_name:#容器名称
depends_on:#依赖列表
-depend1
-depend2
images:#镜像
-image1
-image2
build:.#构建目录
network:#网络
......
service2:test2
......
volumnes:#挂载目录列表
networks:#网络列表
configs:#其他配置
到此这篇关于Docker批量容器编排的实现的文章就介绍到这了,更多相关Docker批量容器编排内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。