首页 > 其他分享 >docker-compose的简单使用并搭建zookeeper集群

docker-compose的简单使用并搭建zookeeper集群

时间:2023-08-25 14:26:25浏览次数:38  
标签:容器 compose zookeeper ZOO 2181 docker

简介

Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。它能够简化在单个主机上使用多个容器的部署过程。使用 Docker Compose,您可以使用简单的 YAML 文件来定义应用程序的服务、网络和卷,并通过单个命令一键启动、停止和重建整个应用程序。

Docker Compose 允许您在一个文件中指定各种容器,每个容器称为一个服务。您可以为每个服务配置各种选项,例如容器的映像、端口映射、环境变量、卷挂载等。通过定义这些服务,您可以描述多个容器之间的关系和依赖关系。

使用 Docker Compose 的主要优点之一是它具有声明性的语法。您只需编写一次配置文件,就可以轻松定义应用程序的整个部署结构。此外,Docker Compose 还提供了一些便捷的命令,使您可以轻松地管理和监控应用程序。

安装

在成功安装了 docker 之后,可以通过运行以下命令来安装Docker Compose:

sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 创建软链接
sudo chmod +x /usr/local/bin/docker-compose

# 查看版本信息
docker-compose --version

使用步骤

使用Docker Compose可以按照以下步骤进行:

  1. 编写docker-compose.yml文件:在您的项目目录下创建一个docker-compose.yml文件,并使用文本编辑器(如vi、nano等)打开它。
  2. 定义服务:在docker-compose.yml文件中,通过定义services节来指定每个容器的配置。每个服务都可以包含容器的名称、镜像、端口映射、环境变量、挂载的卷等。
  3. 定义网络:除了服务配置,您还可以定义网络。在docker-compose.yml文件中,可以使用networks节定义您希望创建的网络。
  4. 添加卷:可以使用volumes节定义和配置容器的卷,以便进行数据持久化或与主机共享数据。
  5. 运行命令:进入到 docker-compose.yml 文件的所在的路径下,使用docker-compose命令来执行相关操作。以下是一些常见的命令示例:
    • docker-compose up:构建镜像并启动容器。
    • docker-compose down:停止并移除所有相关容器。
    • docker-compose start:启动已创建的容器。
    • docker-compose stop:停止正在运行的容器。
    • docker-compose restart:重启容器。
    • docker-compose ps:查看正在运行的容器状态。
    • docker-compose logs:查看容器的日志输出。
    • docker-compose exec:执行在容器内部运行的命令。
  6. 执行命令:根据需要,可以使用上述命令执行相应的操作,例如docker-compose up启动容器。

通过使用Docker Compose,您可以使用一个单一的命令或脚本来管理整个多容器应用程序,简化了复杂的部署和管理过程。

搭建 zookeeper 集群

首先,我们想使用 zookeeper 镜像生成三个容器,并在它们直接形成集群。

创建Zookeeper集群配置文件

  1. 在你选择的目录下创建一个名为docker-zookeeper的文件夹,并进入该文件夹:

    mkdir docker-zookeeper
    cd docker-zookeeper
    
  2. 创建一个名为docker-compose.yml的文件,并使用文本编辑器(如vi或nano)打开该文件:

    vi docker-compose.yml
    
  3. 将以下配置复制粘贴到docker-compose.yml文件中:

     restart: always # 当发生错误时自动重启
      hostname: zookeeper01
      container_name: zookeeper01
      privileged: true
      ports: # 端口
       - 2181:2181
      volumes: # 挂载数据卷
       - ./zookeeper01/data:/data
       - ./zookeeper01/datalog:/datalog
      environment:
       TZ: Asia/Shanghai
       ZOO_MY_ID: 1 # 节点ID
       ZOO_PORT: 2181 # zookeeper端口号
       ZOO_SERVERS: server.1=zookeeper01:2888:3888;2181 server.2=zookeeper02:2888:3888;2181 server.3=zookeeper03:2888:3888;2181 # zookeeper节点列表
      networks:
       - mynet  # 自定义网络名
    
     zookeeper02:
      image: zookeeper:3.5.7
      restart: always
      hostname: zookeeper02
      container_name: zookeeper02
      privileged: true
      ports:
       - 2182:2181
      volumes:
       - ./zookeeper02/data:/data
       - ./zookeeper02/datalog:/datalog
      environment:
       TZ: Asia/Shanghai
       ZOO_MY_ID: 2
       ZOO_PORT: 2181
       ZOO_SERVERS: server.1=zookeeper01:2888:3888;2181 server.2=zookeeper02:2888:3888;2181 server.3=zookeeper03:2888:3888;2181
      networks:
       - mynet
    
     zookeeper03:
      image: zookeeper:3.5.7
      restart: always
      hostname: zookeeper03
      container_name: zookeeper03
      privileged: true
      ports:
       - 2183:2181
      volumes:
       - ./zookeeper03/data:/data
       - ./zookeeper03/datalog:/datalog
      environment:
       TZ: Asia/Shanghai
       ZOO_MY_ID: 3
       ZOO_PORT: 2181
       ZOO_SERVERS: server.1=zookeeper01:2888:3888;2181 server.2=zookeeper02:2888:3888;2181 server.3=zookeeper03:2888:3888;2181
      networks:
       - mynet
    
    networks:
     mynet: # 自定义网络名
    
    
  4. 保存并关闭文件。

启动Zookeeper容器

  1. 返回到docker-zookeeper文件夹,并运行以下命令以启动Zookeeper容器:

    docker-compose up -d
    
  2. 运行命令docker ps -a来验证三个Zookeeper容器是否正在运行。

  3. 运行命令docker exec -it zookeeper01 zkServer.sh status 查看zookeeper容器状态。

    ZooKeeper JMX enabled by default
    Using config: /conf/zoo.cfg
    Client port found: 2181. Client address: localhost.
    Mode: leader
    

集群部署成功!

标签:容器,compose,zookeeper,ZOO,2181,docker
From: https://www.cnblogs.com/luler/p/17656793.html

相关文章

  • linux docker公网源下载示例
    1.get-docker.sh百度一下,进入docker官网直接下载该文件,然后执行即可2.直接下载repo文件示例:wgethttps://download.docker.com/linux/centos/docker-ce.repo-O/etc/yum.repos.d/docker.sh--no-check或者yum-config-manager--add-repohttps://download.docker.com/lin......
  • Docker下spark环境搭建
    RUNecho"InstallSpark"&&\wget-O/tmp/spark-2.3.4-bin-hadoop2.6.tgzhttp://mirror.bit.edu.cn/apache/spark/spark-2.3.4/spark-2.3.4-bin-hadoop2.6.tgz&&\cd/tmp/&&\tar-zxvf/tmp/spark-2.3.4-bin-hado......
  • 交互式Docker以及Yaml
    EulerOS、openEulerEulerOSLinux又为被称为华为欧拉Linux.华为欧拉系统主要针对企业级的Linux服务器操作系统,针对B端用户,一般用在企业的大型计算机上,是企业IT系统的基础架构平台进程内存管理网络容器技术编译系统、虚拟存储系统、CPU调度、IO驱动、网络和文件系统Harm......
  • zookeeper安装配置教程
    1、下载地址:https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.8.2/apache-zookeeper-3.8.2-bin.tar.gz等待下载完成:2、将压缩包放到/root/software的文件目录下对该压缩包进行解压:tar-zxvfapache-zookeeper-3.7.1-bin.tar.gz解压完成:3、环境的配置进入......
  • docker 清除日志文件
    查看日志大小:在linux系统中创建docker_logs.sh文件,输入sh docker_logs.sh命令查看日志文件大小/var/lib/docker/containers为docker默认日志输出路径echo"========dockercontainerslogsfilesize========"logs=$(find/var/lib/docker/containers/-name*-json.log)......
  • Exceptionless系列:简介和部署(Windows、Linux、Docker)
    目录一、简介二、版本三、运行说明1、Exceptionless2、Elasticsearch3、Exceptionless.UI四、打包Exceptionless.UI五、window部署1.Elasticsearch2.Exceptionless六、Docker部署一、简介Exceptionless为您提供了跟踪错误、日志和事件的工具,同时指导您找到可行的解决方案。首先......
  • Docker 安装Redis 无法使用配置文件设置密码问题
    背景最近开发需要使用各种组件,如果都到开发机上安装,会占用电脑资源较多。所以使用docker容器来安装这些组件。例如redis、mongodb、mysql、rabitmq、elasticsearch等等。遇到的问题用edis官方镜像启动容器后,发现没有加载配置文件。解决方案1.redis镜像拉下来......
  • 使用 docker 打包构建部署 Vue 项目,一劳永逸解决node-sass安装问题
    文章源于Jenkins构建Vue项目失败,然后就把node_modules删了重新构建发现node-sass安装不上了,折腾一天终于可以稳定构建了。犹记得从学node的第一天,就被node-sass折磨了一整天,后面本地没问题了然后服务器开始折磨了,这次又遇到,尝试了一次又一次,还是用本地包构建最稳,觉......
  • 三、利用 Docker-Slim 缩小 Docker 镜像大小
    有时项目构建出来的Docker大小挺大的,找了好几个缩小Docker镜像的方法,在这里分享一个很棒的方法来优化和缩小Docker镜像并减小镜像体积大小。Docker-SlimDocker-Slim不会更改Docker容器映像中的任何内容并将其缩小多达30倍。Docker-Slim将通过使用各种分析技术了解您的......
  • docker想保留ip和端口其他的不要,想把这个变成linux的命令怎么做?
    docker想保留ip和端口其他的不要,想把这个变成linux的命令怎么做?dockerps只会显示这样一坨东西,看ip和端口又不好看456746ec7581moxi/mogu_blog_nacos"/usr/sbin/init"12hoursagoUp12hours0.0.0.0:465->465/tcp,:::465->465/tcp,0.0.0.0:3306->3306/tcp,:......