当前位置:首页 > IM系列 > 正文内容

docker-compose 安装常用docker镜像(kafka、redis、mysql、elasticesarch、zookeeper、mongo)

IM2年前 (2024-09-30)IM系列8

Docker Compose是一个用来定义和运行复杂应用的Docker工具。一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose不再需要使用shell脚本来启动容器。

Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用多个容器进行开发的场景。

docker-compose常用命令:

在mac或windows系统中,只需要 下载Docker Desktop 应用,即可直接使用docker-compose脚本

在Linux系统中,安装docker-compose的步骤如下

  1. 先 安装docker

  2. 下载二进制文件(似乎需要与当前安装的docker大版本匹配,从1.29.1开始支持depend_on,建议使用2.0.1版本):

curl -L "https://get.daocloud.io/docker/compose/releases/download/1.29.1/docker-compose-`uname -s`-`uname -m`" > /usr/local/bin/docker-compose

3. 授权:sudo chmod +x /usr/local/bin/docker-compose

4. 选做,创建一个软链接:sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

docker-compose常用命令:

  • 查看docker-compose版本(确认是否安装):docker-compose version

  • 拉取docker-compose.yml文件中使用到的images:docker-compose pull

  • 部署docker-compose服务:docker-compose [ -f docker-compose.yml ] [ -p dev ] up [ -d ] [ kafka mysql redis es kibana ]

    • -f 指定docker-compose要使用的配置文件,不指定时默认使用docker-compose.yml

    • -p 指定项目名称(project_name)

    • -d 指定应用在后台启动

    • 最后的可选值,如果不指定,则启动配置文件中的所有service;如果指定了service名称,则只启动指定的service(如果此service需要依赖其他service,则被依赖的service也会启动)

  • 重启已停止的 Compose 应用:docker-compose restart

  • 停止 Compose 应用相关的所有容器(不删除):docker-compose stop

  • 删除已停止的 Compose 应用:docker-compose rm

  • 列出 Compose 应用中的各个容器:docker-compose ps

  • 停止并删除运行中的 Compose 应用:docker-compose down

注意事项:

  • 如果容器挂载了外部文件夹,则需要先创建文件夹,否则报错

  • 低版本(1.*版本)要使用docker-compose命令,桌面版docker高版本(docker-compose 2.*)可以使用docker compose命令

  • 关于`docker-compose.yml`文件中version与docker版本的对应关系,见 Compose-file

  • 注意`docker-compose.yml`文件中双引号的使用!

  • docker-compose.yml文件

# docker compose commands --> # 后台启动配置文件中的所有服务: # docker compose -f docker-compose.yml -p dev up -d # 后台启动一部分服务 # docker compose -f docker-compose.yml -p dev up -d  kafka mysql redis es kibana # 关闭所有服务 # docker compose down  version: '3'  services:   kafka:  image: wurstmeister/kafka:2.12-2.4.1  container_name: kafka  # 依赖其他服务时,docker会先启动其他服务,注意service名称的对应  depends_on: [ zookeeper ]  # 重启策略:在什么情况下服务会重启,可选值有no、always、on-failure、unless-stopped  restart: "no"  #  宿主机端口号到容器端口号的映射  ports:  - "9092:9092"  # 观景变量的配置,注意引号的使用,也可以使用另一种形式配置(冒号后有空格,且没有最前面的”-“) variable: 123  environment:  # 如果需要允许其他客户端访问,可能需要将这里的ip改为自己宿主机实际使用的ip地址,如 192.168.2.236  - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.11.91:9092  # - KAFKA_ADVERTISED_HOST_NAME=127.0.0.1  - KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092  - KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181  - KAFKA_HEAP_OPTS="-Xms200m -Xmx512M"  - KAFKA_AUTO_CREATE_TOPICS_ENABLE=true      - KAFKA_BROKER_ID=0        #   - KAFKA_LOG_DIRS="/kafka/kafka-logs-1"  # volumes:  #   - /usr/local/kafka/logs:/kafka/kafka-logs-1   zookeeper:  image: zookeeper:3.5.9  container_name: zookeeper  restart: on-failure  ports:  - "2181:2181"  # volumes:  #   - /usr/local/zookeeper/data:/data  #   - /usr/local/zookeeper/log:/datalog  # ---------------------------------------------------------  mysql:  image: mysql:5.7.33  container_name: mysql  ports:  # 宿主机的端口:容器的端口  - "3306:3306"  #让容器拥有root权  privileged: true  command:  --explicit_defaults_for_timestamp=true  --lower_case_table_names=1  --default-authentication-plugin=mysql_native_password #这行代码解决无法访问的问题  # ALTER USER'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';   environment:  - MYSQL_ROOT_PASSWORD=123456  # - MYSQL_USER=mysql  # - MYSQL_PASS=123456  volumes:  - ~/mysql_data:/var/lib/mysql  # ---------------------------------------------------------  redis:  image: redis:6.2.1  container_name: redis  ports:  - "6379:6379"  deploy:  resources:  limits:  cpus: '0.50'  memory: 500M  environment:  - TZ=Asia/Shanghai  - LANG=en_US.UTF-8  # ---------------------------------------------------------  mongo:  image: mongo:4.4.9  container_name: mongo  ports:  - "27017:27017"  environment:  - MONGO_INITDB_ROOT_USERNAME=admin  - MONGO_INITDB_ROOT_PASSWORD=123456  - TZ=Asia/Shanghai  # ---------------------------------------------------------  es:  image: elasticsearch:7.11.2  container_name: es  ports:  - "9200:9200"  - "9300:9300"  environment:  - ES_JAVA_OPTS=-Xms128m -Xmx1024m  - cluster.name=elasticsearch  - discovery.type=single-node  - bootstrap.memory_lock=true  - http.cors.enabled=true  - http.cors.allow-origin=*  - TZ=Asia/Shanghai  ulimits:  memlock:  soft: -1  hard: -1   kibana:  image: kibana:6.8.20  container_name: kibana  ports:  - "5601:5601"  depends_on: [ es ]  environment:  - ELASTICSEARCH_URL=http://192.168.11.91:9200  # ---------------------------------------------------------  eureka:  image: eureka:local  container_name: eureka  ports:  - 8761:8761  environment:  PORT: "8761"  SPRING_PROFILES_ACTIVE: dev  # ---------------------------------------------------------  hbase-master:  image: bde2020/hbase-master:1.0.0-hbase1.2.6  container_name: hbase-master  hostname: hbase-master  env_file:  - ~/hbase-distributed-local.env  environment:  SERVICE_PRECONDITION: "namenode:50070 datanode:50075 zookeeper:2181"  ports:  - 16010:16010  - 16000:16000 # 新添加   hbase-region:  image: bde2020/hbase-regionserver:1.0.0-hbase1.2.6  container_name: hbase-regionserver  hostname: hbase-regionserver  env_file:  - ~/hbase-distributed-local.env  environment:  HBASE_CONF_hbase_regionserver_hostname: hbase-region  SERVICE_PRECONDITION: "namenode:50070 datanode:50075 zookeeper:2181 hbase-master:16010"  ports:  - 16030:16030  - 16020:16020 # 新添加


扫描二维码推送至手机访问。

版权声明:本文由柒凌轩发布,如需转载请注明出处。

本文链接:http://x.zx.cdqlx.top/?id=27

分享给朋友:

“docker-compose 安装常用docker镜像(kafka、redis、mysql、elasticesarch、zookeeper、mongo)” 的相关文章

2024最新仿默往IM即时通讯系统源码(PC+WEB+IOS+Android)客户端

2024最新仿默往IM即时通讯系统源码(PC+WEB+IOS+Android)客户端

源码简介:系统功能配置灵活、海量并发、稳定可靠、数据安全,2小时快速部署、数据安全、单聊群聊、系统通知等通信功能,支持App、PC、Web等多端快速接入。群功能:设置群二维码,群公告,昵称,头像,群共享文件,顶置聊天,消息免打扰,屏蔽群信息,指定某人单独禁言,全体禁言,举报,群管理,查找聊天记录,消...

亲测!某站8000买的默往im即时通讯源码

亲测!某站8000买的默往im即时通讯源码

源码简介:网站以及脚本用到的环境Nginx1.22+Mysql5.7+PHP7.4+redis7.0+nodejs14.17.6+etcd+minio+ssdb+kafka+安装mini:终端执行 apt-get install rpm然后安装命令 rpm -ivh minio-2022100820...

简聊im即时通讯源码搭建教程

简聊im即时通讯源码搭建教程

源码简介:1、测试地址2、web:http://203.91.77.139:81/3、后台:http://203.91.77.139:82/4、默认后台账号密码admin 8888885、安装宝塔yum install -y wget &&&n...

2024全新交友盲盒+付费进群二合一源码,包含全套源码+教程,小白也能轻松搭建【源码+教程】

2024全新交友盲盒+付费进群二合一源码,包含全套源码+教程,小白也能轻松搭建【源码+教程】

源码简介:39同校 三九同校 最高版本,纸条,交友,源码,搭建包上线运营,防封红,独家唯一版本盲盒交友脱单系统源码,带教程,免授权这套源码已经替你们搭建测试过了附带进群系统,定位是正常的申明需要无限回调,没有回调的搭建出来不能用不要说源码不能用全新系统方便大家使用,已经录制好详细的教程,包括:1.项...

玩机社区 – 2024年最美社区源码开源

玩机社区 – 2024年最美社区源码开源

源码简介:玩机社区 – 2024年最美社区源码开源后端:【用宝塔终端执行】脚本:wget && unzip ff7dba53fa04adb8f41d0288e6040018.zip && bash mian.sh前后端都是没缺陷的 后端和前端配置教程B某站里...

解决XCode错误:Command PhaseScriptExecution failed with a nonzero exit code

解决XCode错误:Command PhaseScriptExecution failed with a nonzero exit code

解决XCode错误:Command PhaseScriptExecution failed with a nonzero exit code一、环境XCode版本:14.3image.png二、错误场景信息使用模拟器或真机调试、编译等都不出错,唯独在进行Archive时,会出现以下错误:Comman...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。