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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。