Docker 学习笔记(三):服务

概述:扩展应用、实现负载均衡

(一)什么是服务:

    在一个分布式应用中,应用的不同部分称为服务(Service)。例如,一个视屏分享网站可能有:储存用户数据到数据库的服务、在用户上传视频之后转码的服务、前端服务等等。

    “服务”仅仅是生产中的容器。一个服务运行一个镜像,但是它决定了镜像的运行方式:运行在什么端口,运行多少个容器的复制等等。通过改变软件中容器实例的数量去扩展服务,可以在运行中为服务分配更多的资源。

(二)docker-compose.yml

    定义了Docker容器在生产中的运行方式。

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:

(三)启动负载均衡应用

docker swarm init
docker stack deploy -c docker-compose.yml getstartedlab

“getStartedlab”是我们App的名称,我们的单服务stack启动了主机上镜像的五个容器。我们可以获得服务的ID

docker service ls

通过web服务的输出我们可以发现,他的名字由“应用名称_服务名称”构成。运行在服务中的一个容器称为task,task有自己独有的递增ID,取决于你在docker-compose.yml中定义的复制个数。我们可以这样来查看task:

docker service ps getstartedlab_web

通过列举容器,也能过查看到task,不过没有被服务过滤过

docker container ls -q

(四)扩展应用

可以通过改变docker-compose.yml中replicas的值来扩展应用,重新部署:

docker stack deploy -c docker-compose.yml getstartedlab

Docker采用热更新的方式,没必要关闭stack或者关闭任何容器

拆卸应用 & 群

拆卸应用:

docker stack rm getstartedlab

拆卸群:

docker swarm leave --force

(五)速查表

docker stack ls                                            # List stacks or apps
docker stack deploy -c <composefile> <appname>  # Run the specified Compose file
docker service ls                 # List running services associated with an app
docker service ps <service>                  # List tasks associated with an app
docker inspect <task or container>                   # Inspect task or container
docker container ls -q                                      # List container IDs
docker stack rm <appname>                             # Tear down an application
docker swarm leave --force      # Take down a single node swarm from the manager


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值