Docker之旅:Docker中的服务部分

服务

在第3部分中,我们扩展了我们的应用并实现了负载平衡。要做到这一点,我们必须在分布式应用程序的层次结构中升级一级: 服务。

  • 服务(你在这里)
  • 容器

一、服务的概念

在分布式应用程序中,应用程序的不同部分被称为“服务”。例如,如果您想象一个视频共享站点,它可能包含一个用于将应用程序数据存储在数据库中的服务,一个用于在后台进行视频转码的服务用户上传的东西,前端的服务等等。

服务实际上只是“生产中的容器”。服务只运行一个映像,但它编码图像运行的方式 - 应该使用哪个端口,容器应运行多少个副本,以便服务具有所需的容量,以及等等。缩放服务会更改运行该软件的容器实例的数量,从而为流程中的服务分配更多计算资源。

幸运的是,使用Docker平台定义,运行和扩展服务非常简单 - 只需编写一个docker-compose.yml文件即可。

二、编写docker-compose.yml文件

1.一个docker-compose.yml文件是一个YAML文件,它定义了Docker容器在生产中的行为方式。

将该文件保存为docker-compose.yml您想要的任何位置。确保您已将 第2部分中创建的图像推送到注册表中,并通过替换 图像详细信息来更新此图像。.ymlusername/repo:tag

2.看一下我的cloud.docker

这里写图片描述

3.编辑一下

这里写图片描述
里面的值:

version: "3"
services:
  web:
    # 写你自己的,replace username/repo:tag with your name and image details
    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:

4.该docker-compose.yml文件告诉Docker执行以下操作:

从注册表中拉出我们在步骤2中上传的图像。
运行该图像的5个实例作为所调用的服务web,限制每个实例使用最多10%的CPU(跨所有核心)和50MB的RAM。
如果一个失败,立即重启容器。
将主机上的端口80映射到web端口80。
web通过称为负载平衡的网络指示容器共享端口80 webnet。(在内部,容器本身web在临时端口上发布到 80端口。)
webnet使用默认设置定义网络(这是一个负载平衡覆盖网络)。

三、运行新的负载平衡应用程序

1. 在我们可以使用该docker stack deploy命令之前,我们首先运行:

docker swarm init

注意:我们在第4部分讨论了该命令的含义。如果你没有运行,docker swarm init你会得到一个错误,“这个节点不是一个群管理器。”

root@iZbp162mb58mqtz72o389nZ:~/docker/pythontest# docker swarm init
Swarm initialized: current node (bspodnzw81zmppa5o03tr2w9i) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-4khckewslx6z2kq4qvtrz88dpp8dl6fn3fijieql8a8x4v99ko-es4rbyj8jrfn64c1rhxj5wki9 172.16.158.128:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值