docker 部署 nsq

这篇文章主要介绍如何使用docker部署 nsq 组件

环境准备

本文基于一台 ubuntu 虚拟机试验

docker 安装

docker 安装方式
使用docker version 命令检查 docker 是否安装成功

docker-compose 安装

apt-get install docker-compose

nsq docker 部署

nsq 主要有三个组件: nsqlookupd, nsqd, nsqadmin。这三个组件都包含在 nsqio/nsq 镜像中, 每一个组件都可以通过指定组件名的方式去启动,启动命令的形式如下:
docker run nsqio/nsq /command

拉取基础镜像 docker pull nsqio/nsqd

docker部署

nsqlookupd

docker run --name lookupd -p 4160:4160 -p 4161:4161 -d nsqio/nsq /nsqlookupd
说明:

  • -p 是映射端口
  • -d 是后台运行容器
  • /nsqlookupd 就是启动命令

    nsqd

  • 首先通过ifconfig获取虚拟机的 ip, 以本机 ip 172.16.49.92为例
  • nsq 的启动命令如下:
    docker run --name nsqd -p 4150:4150 -p 4151:4151 -d nsqio/nsq /nsqd --broadcast-address=172.16.49.92 --lookupd-tcp-address=172.16.49.92:4160
  • 持久化保存 nsqd 数据 使用/data 参数:
    --data-path=/data

nsqadmin

docker run -d --name nsqadmin -p 4171:4171 nsqio/nsq /nsqadmin --lookupd-http-address=172.16.49.92:4161
访问 http://172.16.49.92:4161 就可以查看 nsq系统详情了

测试验证

  • curl 172.16.49.92:4161/nodes调用 lookupd 接口查看节点信息
    json {"producers":[{"remote_address":"172.17.0.1:46290","hostname":"6c684bee454b","broadcast_address":"172.16.49.92","tcp_port":4150,"http_port":4151,"version":"1.2.0","tombstones":[],"topics":[]}]}
  • curl -d ‘hello world ‘ ‘http://127.0.0.1:4151/pub?topic=test‘生产一个消息,同时也创建了一个topic。
    调用 lookupd 的 /topics 接口返回 json {"topics":["test"]}
  • 通过docker logs containerID查看各个组件的日志详情
  • 直接访问 http://172.16.49.92:4171 就可以访问 nsqadmin 的首页

    nodes 详情页:

docker-compose 部署

docker-compose 可以轻松、高效的管理容器,它是一个用于定义和运行多容器 Docker 的应用程序工具.
要使用 dokcer-compose 部署,我们首先需要编写 yaml 文件, docker-compose.yml 文件如下:

version: '3'
services:
  nsqlookupd:
    image: nsqio/nsq
    command: /nsqlookupd
    ports:
      - "4160"
      - "4161"
  nsqd:
    image: nsqio/nsq
    command: /nsqd --lookupd-tcp-address=nsqlookupd:4160
    depends_on:
      - nsqlookupd
    ports:
      - "4150"
      - "4151"
  nsqadmin:
    image: nsqio/nsq
    command: /nsqadmin --lookupd-http-address=nsqlookupd:4161
    depends_on:
      - nsqlookupd
    ports:
      - "4171"

定义了三个服务模块: nsqlookupd, nsqd, nsqadmin. 具体的 docker-compose 使用可以参考: docker-compose 使用
docker-compose up -d 启动nsq 所有组件
docker-compose ps 查看各个组件的运行详情
docker-compose logs 查看组件日志
其他常用命令可以通过 docker-compose --help查看

原文地址:https://www.cnblogs.com/jssyjam/p/11546233.html

时间: 2024-10-13 22:03:45

docker 部署 nsq的相关文章

【Docker江湖】之docker部署与理解

转载请注明出处:http://blog.csdn.net/gamer_gyt 博主微博:http://weibo.com/234654758 Github:https://github.com/thinkgamer Docker江湖 [Docker江湖]之Docker部署与理解 [Docker江湖]之hub上镜像的使用,Dockerfile语法解读和数据管理 [Docker江湖]之创建带有SSH服务的镜像 写在前边的话 在之前便想学习Docker技术了,可是一直没有机会,近期在做elk的一个项目

Centos7 下面安装docker 部署Nginx

实验 环境 Centos 7 操作系统 安装docker yum install docker -y 查看docker 是否安装成功 docker -v Docker version 1.12.6, build 3a094bd/1.12.6 启动docker systemctl start docker 部署Nginx 获取基础镜像 docker pull nginx:1.10.3 查看 镜像 1.直接启动容器 docker run -d -p 8080:80 nginx:1.10.3 解释:

docker'部署

环境:ubuntu-14.04.4-server-amd64 1.更换阿里云源 备份源配置文件: $ sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup $ sudo vim /etc/apt/sources.list 删除文件内容,更新为: deb http://mirrors.aliyun.com/ubuntu trusty main restricted deb-src http://mirrors.aliyun.com/u

docker部署tomcat乱码和系统时间不对处理

docker部署好程序后访问中文是乱码,(针对centos 6镜像) docker默认为POSIX 在Dockerfile 里添加 ENV         LANG         en_US.UTF-8 系统时间为UTC时间差8小时 在Dockerfile里添加 RUN     /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime RUN     /bin/echo -e "ZONE="Asia/Shanghai"

docker部署gitlab

由于docker部署gitlab比较方便,于是用docker部署gitlab,安装步骤如下: 我拿的虚拟机做的测试,系统是centos 7.1,我ip是192.168.12.234. docker安装以及基础知识这里就不说了 1. 下载gitlab镜像 docker pull gitlab/gitlab-ce 2. 运行gitlab实例 mkdir -pv /data/gitlab/{config,logs,data} GITLAB_HOME="/data/gitlab" docker

Docker学习笔记三:Docker部署Java web系统

Docker部署Java Web系统 1.在root目录下创建一个路径test/app mkdir test && cd test&& mkdir app &&cd app 2.将apache-tomcat-7.0.29.tar.gz及jdk-7u25-linux-x64.tar.gz拷贝 到app目录下 3.解压两个tar.gz文件 tar -zxvf apache-tomcat-7.0.29.tar.gz tar -zxvf jdk-7u25-linux

使用Docker部署PHP应用的设计方案

1. Docker Docker的官方定义是: Docker allows you to package an application with all of its dependencies into a standardized unit for software development. -- https://www.docker.com/whatisdocker 毫无疑问的是,Docker解决了应用部署上一个巨大的问题: 客户: 安装好了,用不了. 发布者:我的机器上没问题. 如何解决每

手把手教你用Docker部署一个MongoDB集群

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中最像关系数据库的.支持类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引.本文介绍了如何使用Docker搭建MongoDB集群. 本文我会向大家介绍如何使用Docker部署一个MongoDB集群,具体如下: 2.6.5版本的MongoDB 有3个节点的副本集(Replica set) 身份验证 持久化数据到本地文件系统 首先要准备三个运行的Docker服务器,这意味着你

基于VS2017的Docker Support体检ASP.NET Core站点的Docker部署

最近在学习如何用 Docker 部署生产环境中的 ASP.NET Core 站点,作为一个 Docer 新手,从何处下手更容易入门呢?一开始就手写 Docker 配置文件(Docfile, docker-compose.yml)容易让人产生挫败感,想到 Visual Studio 2017 对 Docker 的支持(Docker Support),也许借助它自动生成Docker配置文件.初步体验一下 Docker 部署是一个入门捷径,遂据此想法尝试了一下,感觉不错. 1. 启用 VS2017 的