zoukankan      html  css  js  c++  java
  • docker-swarm建立本地集成开发环境

    在k8s出现之后,docker-swarm使用的人越来越少,但在本地集成开发环境的搭建上,使用它还是比较轻量级的,它比docker-compose最大的好处就是容器之间的共享和服务的治理,你不需要links容器,也不知道关心失败之后的重启,这些都于swarm来实现。

    对于docker-compose和docker-swarm的分工

    1. docker-compose用来进行镜像的编排,同时将多个相关镜像构建
    2. docker-swarm用来启动和管理容器,它不能构建镜像

    建立compose文件,不支持build,links,depends_on

    services:
      db:
        image: arungupta/couchbase:latest
        ports:
          - 8091:8091
          - 8092:8092
          - 8093:8093
          - 11210:11210
    

    swarm初始化

    docker swarm init
    

    建立服务

    docker stack deploy --compose-file=docker-compose-swarm.yml lind
    

    查看所有服务列表

    docker stack ls
    

    查看指定服务

    docker stack services lind
    

    更新某个服务

    docker service update lind_service1 //有时我们的lind_service1依赖于configserver,当后者没有重启动,前者会一直报错,然后使用默认的配置,由于默认配置为localhost,所以就出现了连接失败的情况
    

    删除服务

    docker stack  rm lind
    

    痛点

    configserver是比较低层的服务,所有项目的配置都来自于这个服务,我们拿eureka配置为例,如果项目从配置中心拿不到它的配置,会使用默认的localhost:8761做为连接地址,这在某些不是localhost:8761的环境下,这简直就成了灾难。

    配置中心使用本地仓库

    配置中心的配置文件一般存储在git远程,而如果太依赖远程也不是好事 ,你可以把仓库下载到本地,然后挂载到容器目录即可,但在进行操作时也有一些需要注意的点:

    1. 配置中心的目录必须是git仓库,默认是master分支
    2. 使用docker-comopse部署时,使用volumes把宿主目录挂载到容器目录,例如固定为config_repo,它可以在yml文件里提前声明。
    • compose文件
     configserver:
       image: swarm_configserver
       ports:
         - "6200:6200"
         - "6201:6201"
       environment:
         SPRING_PROFILES_ACTIVE: development
         PORT: 6200
         BG_PORT: 6201
         EUREKA_PORT: 6761
         MY_IP: 192.168.170.30
       volumes:
            - /Users/lind.zhang/github/config_repo:/config_repo
    
    • bootstramp.yml文件
    spring:
      profiles: development
      cloud:
        config:
          server:
            git:
              uri: /config_repo
    
  • 相关阅读:
    python-configparser模块,xml.etree模块
    Ubuntu16.04环境下Vim 配置 for HTML,CSS,JAVASCRIPT(1)
    Windows 命令行及Git操作
    Ubuntu16.04 无任务栏问题
    ubuntu16.04安装中文输入法
    本地Web服务器搭建
    爬虫(1)
    Python(四):数字连珠2
    python学习(四)五数连珠
    Openjudge 百练第4109题
  • 原文地址:https://www.cnblogs.com/lori/p/10095325.html
Copyright © 2011-2022 走看看