docker swarm 结合阿里云自动构建镜像 ( 乞丐版 )

一. 构建镜像发布到阿里云

这个版本之所以叫乞丐版,是因为不需要掌握复杂的jenkins,k8s等,但是又想体验一下全自动部署,分布式的快感…

所以就选择了这种方案…网上搜集来看,对于1000台服务器以下,docker swarm似乎完全够用…我很难想象,那些大厂是怎么维护服务器的.. 听说谷歌的服务器就是以千万来算的……这感觉完全不是一个世界的…

1. 编写简单的dockerfile

FROM centos:7
COPY . /PROJECT_ROOT
WORKDIR /PROJECT_ROOT

这个dockerfie一定要放在和项目一起,否则后面自动构建镜像会失败

2. 根据dockerfile构建镜像

docker build -t testhello:latest .

3. 发布到阿里云

阿里云的镜像仓库如何创建这里就不说了,其实下面的命令在镜像仓库创建好了以后也都会有

docker login --username=[用户名] registry.cn-[城市仓库]

然后push

# 先打上Tag
docker tag [镜像id] registry.cn-[城市仓库]/[用户名]/[镜像名]:[版本号]

docker push registry.cn-[城市仓库]/[用户名]/[镜像名]:[版本号]

到现在,会有一个云端的镜像地址,只要随时在装了docker的电脑上,pull就可以直接用了,当然也可以把镜像打包在本地,这里不多说

二. docker-swarm的集群设置

1. 创建集群

docker swarm init --advertise-addr [ip]:[端口] --listen-addr [ip]:[端口]

ip写公网ip的地址

这里有几个注意事项,一直坑我很久:

  1. advertise-addr ,一定要写,要不然异地组网会有问题,我不明白为什么网上搜了这么多,这么重要的参数居然都会漏,搜出来的全部都是局域网集群..我就纳闷了,都搞集群了,还整个局域网干啥子?
  2. listen-addr ,照写就可以了,这样端口就可以自定义了
  3. 如果没有公网ip的,可能做了不master ( 这个应该可以直接写域名,没有具体测试 )

2. 编写yml文件

version: '3'

services:

  web:
    image: registry.cn-[城市]/[用户名]/[镜像]:[版本]
    tty: true
    networks:
      - my-network
    deploy:
      mode: replicated
      replicas: 3
      restart_policy:
        condition: on-failure
        delay: 5s
        max_attempts: 3

networks:
  my-network:
    driver: overlay

具体参数的意义可以百度,这都比较简单,只说一下注意点:

  1. 如果该服务为非阻塞的 ( 比如不是web,或是分布式爬虫的,tty 必须加,否则docker开一下就关了)
  2. replicas 参数必须加,如果只是单台的情况下

3. 部署服务

docker stack deploy -c docker-compose.yml hellotest --with-registry-auth

docker-compose.yml为yml文件,hellotest为服务的名称,–with-registry-auth 这个参数必须加,这样你就可以用最新的镜像(会自动pull)

三. 阿里云的设置

到上面2步,集群就算完了,接下去就是阿里的一些设置

  1. 首先用https://code.aliyun.com/开个仓库(当然github也行)
  2. 然后再创建仓库的时候,选择同步该仓库,然后把下面选项打开 docker swarm 结合阿里云自动构建镜像 ( 乞丐版 )
  3. 再添加一个构建规则 docker swarm 结合阿里云自动构建镜像 ( 乞丐版 )

然后就完了,剩下的你只要更新了代码,然后push到阿里云…,然后再任意一台master上运行…(这行代码完全可以写在和push一起的脚本里面,这样就可以全自动更新了)

docker stack deploy -c docker-compose.yml hellotest --with-registry-auth

此时,就算你有100台电脑,那么所有的电脑就会滚动更新到最新版!是不是很happy?

本站出售的源码只允许用于合法用途,以及学习交流技术层面,凡是用于非法用途的与本站无关,本人不承担任何责任!未经本站允许不得转载、倒卖克胡网络 » docker swarm 结合阿里云自动构建镜像 ( 乞丐版 )
分享到:
赞(0)

评论抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
Hello,欢迎来咨询~