美文网首页Docker容器Awesome Docker
Docker Tutorial Day 3: Services

Docker Tutorial Day 3: Services

作者: jsy_hello | 来源:发表于2017-07-18 12:39 被阅读0次

本篇文章来源于官方文档,是我学习后的总结。



这是我docker学习之旅的第三篇文章

本篇文章的架构思路如下

1. 靠什么部署服务

2. 实际定义一个部署文件

3. 开始部署

4. 更新部署

5. 撤销部署

靠什么部署服务

答案是靠配置文件来部署服务,具体的配置文件叫做yml文件
之前我们就提过了docker的三个层次,分别是containers,services,stack,今天要说的就是第二层services
services就是不同的应用程序,更实际点说就是跑起来的多个container一个service只跑一个镜像,但是定义了这个镜像的运行细节,比如跑多少个镜像的副本,在哪个端口跑,在这里你肯定想到了一个专业名词叫做负载均衡
在docker里面是通过yml文件定义部署文件的,这种文件极其注重格式,也就是缩进,你的缩进如果不对劲的话,那么你可能就要吃大亏了,缩进有各自的层次,有点像Python代码风格(当然Python没那么严重),当你写好了yml后,可以复制内容到这里进行验证,在我们定义一个名为docker-compose.yml的文件,这内容是官方例子,具体内容如下,然后我依然对每一句都进行说明,如果有人要照抄我的这个文件,如果跑不起来,估计就是缩进有问题,你把我的注释都删了试试,再不行你就去docker官方找个例子。

实际定义一个yml文件

#version 和swarm有关,3以上的版本才能用swarm
version: "3"
#定义我们的服务
services:
        # 服务名称叫做web
        web:
            # 使用的镜像是 jsycdut/example:part1
            image: jsycdut/example:part1
            # 定义部署选项
            deploy:
                  # 跑5个镜像副本
                  replicas: 5
                  # 使用宿主机资源定义
                  resources:
                      # 资源限制
                      limits:
                            # 使用10%的CPU资源
                            cpus: "0.1"
                            # 使用50M的内存资源
                            memory: 50M
                  # 重启策略
                  restart_policy:
                     # 一旦失败就重启
                     condition: on-failure
           # 端口映射,container里面用的是80端口,宿主机使用的是4000端口
            ports:  
                  -  "4000:80"
            # 网络定义,使用webnet,它的定义在下面
            networks:
                  # webnet 是一个负载均衡网络
                  -  webnet
# 定义networks关键字
networks:
# 使用webnet,为默认设置
  webnet:

注意上面的ports那里,第一个数字是宿主机端口,也是我们的访问端口,第二个数字是container使用的内部端口。


接下来执行如下命令

开始部署服务
docker swarm init  //初始化一个集群,必要操作,因为5个镜像已经可以说是一个集群了
docker stack depoloy -c docker-compose.yml friendly-service //部署,命令格式为 docker  stack  deploy  -c  yml文件名  服务名,-c的意思是使用yml文件来部署的意思
docker stack ps friendly-service //查看我们服务的运行情况
更新部署
如果你要更新你的部署,只需要修改你的yml文件,然后重新部署即可。
撤销部署
docker stack rm friendly-service //干掉我们部署的服务,但是记住swarm还在,一会儿我们要强制退出swarm
docker node ls // 查看在运行的swarm
docker swarm leave --force // 强制退出swarm

    本文完

相关文章

网友评论

    本文标题:Docker Tutorial Day 3: Services

    本文链接:https://www.haomeiwen.com/subject/ibsckxtx.html