hujh20 发表于 2018-5-29 10:28:49

Docker 搭建微服务及管理

  centos7 安装docker
  1:查看内核
  $ uname -r
  2:用root用户登录操作系统进行更新packages
  $ sudo yum update
  3:启用overlay
  sudo tee /etc/modules-load.d/overlay.conf <<-'EOF'
  overlay
  EOF
  4:重启操作系统
  

  reboot
  5:确认 overlay启用
  $ lsmod | grep overlay
  6:添加yum repo
  sudo tee /etc/yum.repos.d/docker.repo <<-'EOF'
  
  name=Docker Repository
  baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
  enabled=1
  gpgcheck=1
  gpgkey=https://yum.dockerproject.org/gpg
  EOF
  7:配置docker 使用overlay
  $ sudo mkdir -p /etc/systemd/system/docker.service.d && sudo tee /etc/systemd/system/docker.service.d/override.conf <<- EOF
  
  ExecStart=
  ExecStart=/usr/bin/docker daemon --storage-driver=overlay -H fd://
  EOF
  8.安装docker engine,daemon和service
  sudo yum install --assumeyes --tolerant docker-engine-1.9.1 docker-engine-selinux-1.9.1
  sudo systemctl start docker
  sudo systemctl enable docker
  

  我们开始搭建:
  1、下载 swarm 镜像
  docker pull swarm
  

  2、创建一个clusterid(集群id)
  docker run --rm swarm create
  

  返回一个集群id,我们记录为:
  90ea5a1796146652c67eee21ba90a153
  3、启动集群管理docker实例(每个实例都需要做3,4两步)
  启动另外一个docker实例,监听外网的2375端口
  docker -H tcp://0.0.0.0:2375 --daemon=true --pidfile=/var/run/docker_2375.pid --graph="/var/lib/docker_2375"
  

  或者
  nohup docker -H tcp://0.0.0.0:2375 --daemon=true --pidfile="/var/run/docker_2375.pid" --graph="/var/lib/docker_2375" &
  

  4、启动agent
  启动swarm的agent,并和之前的2375端口对接上,如果有多个docker实例,就在多台机器上启动这个玩意
  docker run -d swarm join --addr=10.14.40.112:2375 token://90ea5a1796146652c67eee21ba90a153
  

  5、启动swarm的管理器
  docker run -d -p 2376:2375 swarm manage token://90ea5a1796146652c67eee21ba90a153
  

  这里我们让manager监听2376端口
  

  6、测试是否成功
  我们执行如下命令,查看集群的信息:
  docker -H tcp://127.0.0.1:2376 info
  打印如下:
  

  Nodes: 1
  

  xxxx: 10.14.40.112:2375
  └ Containers: 3
  └ Reserved CPUs: 0 / 2
  └ Reserved Memory: 0 B / 3.93 GiB
  

  docker run -d -p 9000:9000 --privileged -v /var/run/docker.sock:/var/run/docker.sock uifd/ui-for-docker
  

  

  

  

  

  功能及使用体验方面
  

  两者各有优缺点,比较适合配合使用。
  

  DockerUI
  DockerUI基于Docker API,提供等同Docker命令行的大部分功能,支持container管理,image管理。
  

  优点:
  支持container批量操作;
  支持image管理(虽然比较薄弱)
  

  缺点:
  不支持多主机。
  

  

  

  

  Shipyard
  Shipyard也是完全基于Docker API,支持container管理、engine管理(一个engine就是监听tcp端口的docker daemon)。
  

  优点:
  支持多主机;
  支持container及engine资源限制及图形展示;
  支持container实例横向扩展;
  支持批量创建;
  支持创建时自动调度。
  

  缺点:
  不支持image管理;
  不支持container批量操作
  

  

  

  webui 集群管理
  Shipyard 是一个基于 Web 的Dokcer 管理工具,支持多 host,可以把多个 Docker host 上的 containers统一管理;可以查看 images,甚至 build images;并提供 RESTful API 等等。 Shipyard 要管理和控制 Docker host 的话需要先修改 Docker host 上的默认配置使其支持远程管理。
  

  docker远程管理支持
  Shipyard 要管理和控制 Docker host 的话需要先修改 Docker host 上的默认配置使其支持远程管理。修改配置文件 docker.conf
  vim /etc/default/docker
  添加一行:
  

  DOCKER_OPTS="-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock"
  

  

  

  重启docker服务
  

  service docker restart
  docker -d
  
  

  

  

  获取shipyard
  docker pull sh ipyard/shipyard
  docker pull shipyard/rethinkdb
  

  

  

  部署shipyard
  RethinkDB
  启动一个RethinkDB数据卷实例:
  

  docker run -it -d --name shipyard-rethinkdb-data --entrypoint /bin/bash shipyard/rethinkdb -l
  启动包含数据卷的RethinkDB的容器:
  

  docker run -it -P -d --name shipyard-rethinkdb --volumes-from shipyard-rethinkdb-data shipyard/rethinkdb Shipyard
  启动Shipyard:
  

  Shipyard将创建一个默认账号,用户名:admin,密码:shipyard。使用该密码登陆:http://<your-host-ip>:8080
  
页: [1]
查看完整版本: Docker 搭建微服务及管理