docker之服务


一、学习之前的要求

要求参考这里链接,重要的是要把docker compose装起来。官网安装教程,注意选择适合你操作系统的还有docker-compose的最新版本。

二、介绍

在这部分,我们要扩展我们的应用并使其能够负载均衡。

三、关于服务

在一个分布式系统中,一个应用的不同部分称为服务。比如一个视频分享站点,他可能包含存储数据到数据库、视频转码、前端服务等。

服务其实就是产品中的容器(Services are really just “containers in production.”)。一个服务只运行一个镜像,但它编码了映像的运行方式。在Docker平台上,定义、运行和扩展服务非常容易 - 只需编写一个docker-compose.yml就行。

所以,docker-compose.yml 就是用来定义、运行、扩展服务的

四、第一个docker-compose.yml文件

docker-compose.yml可以放在任何地方。

version: "3"
services:
  web:
    # 将username/repo:tag 替换为你的用户名和标签,比如我的为fenglifengli/get-started:part2
    image: username/repo:tag
    deploy:
      replicas: 5
      resources:
        limits:
          cpus: "0.1"
          memory: 50M
      restart_policy:
        condition: on-failure
    ports:
      - "80:80"
    networks:
      - webnet
networks:
  webnet:

这个文档的具体意思参考 链接

五、运行我们的负载均衡app

  • 在部署app之前,先执行下面命令(不然会出错哦!):
docker swarm init
  • 部署我们的app并给它命名:
docker stack deploy -c docker-compose.yml getstartedlab

这样一个主机上就运行了一个镜像(image)的五个实例(contianer)

  • 显示我们的服务:
docker service ls
  • 在服务中运行的单个容器,我们称为任务(task),下面命令列出我们服务的任务:
docker service ps getstartedlab_web
  • 如果此时列出所有容器
docker container ls -q

在这里插入图片描述

  • 现在我们就可以访问我们的服务了通过
curl -4 http://localhost:4000

或访问

http://localhost:80(注意这个访问会很满,建议用上面命令方式)

结果容器ID都会发生变化,从而证明负载均衡; 对于每个请求,以循环方式选择5个任务中的一个来响应。容器ID与上一个命令(docker container ls -q )的输出匹配。
在这里插入图片描述

六、扩展我们的应用

  • 我们可以修改docker-compose.yml的replicas来扩展我们的服务,也就是增加容器数量。然后重新部署我们的应用。
    在这里插入图片描述

  • 卸载应用方式

docker stack rm getstartedlab
  • 取消swarm
docker swarm leave --force

七、参考文档

docker 官方文档 get-started:part3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值