Mysql

  • 创建目录
# 创建目录
mkdir -p mysql/datadir mysql/conf mysql/mydir
  • Mysql配置文件

vim ./mysql/conf/my.cnf

[mysqld]
user=mysql
default-storage-engine=INNODB
#character-set-server=utf8
character-set-client-handshake=FALSE
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
# 主从时使用
server_id=1
# 开启binlog 按需开启。影响性能
log-bin=mysql-bin
# 行模式(5.7默认)
binlog_format=row
# binlog同步事务数(5.7默认)
sync_binlog=1
skip-grant-tables
[client]
#utf8mb4字符集可以存储emoji表情字符
#default-character-set=utf8
default-character-set=utf8mb4
[mysql]
#default-character-set=utf8
default-character-set=utf8mb4
  • docker-compose.yaml
version: '3'
services:
  dy_mysql:
    restart: always
    image: mysql:5.7
    container_name: dy_mysql
    volumes:
      - ./mydir:/mydir
      - ./datadir:/var/lib/mysql
      - ./conf/my.cnf:/etc/my.cnf
    environment:
      - MYSQL_ROOT_PASSWORD=duyong
      - TZ=Asia/Shanghai
    ports:
      - 3306:3306
  • 修改密码
# 进入容器
docker exec -it dy_mysql bash

# 进入mysql
mysql

# 修改密码
mysql>update  mysql.user  set  authentication_string=password('duyong')  where user='root';

# 允许root远程连接(看需要设置)
grant all privileges on *.* to 'root'@'%' identified by 'duyong' with grant option;
flush privileges;
# 退出容器
  • 删除配置中的skip-grant-tables 重启容器

Postgres + pgadmin4

  • 创建目录
mkdir -p postgres/data
  • docker-compose.yaml
version: '3.1'

services:
  postgres:
    container_name: duyong_postgres
    image: postgres:12.9
    restart: always
    environment:
      POSTGRES_USER: root
      POSTGRES_PASSWORD: root
      POSTGRES_DB: duyong
    ports:
      - 5432:5432
    volumes:
      - ./data:/var/lib/postgresql/data
  pgadmin4:
    container_name: duyong_pgadmin4
    image: dpage/pgadmin4
    restart: always
    environment:
      PGADMIN_DEFAULT_EMAIL: admin@fskj.com
      PGADMIN_DEFAULT_PASSWORD: 123
    ports:
      - 18080:80

zookeeper单机集群

  • 创建目录
mkdir -p zk
  • docker-compose.yaml
version: '3.1'

services:
  zoo1:
    image: zookeeper
    restart: always
    hostname: zoo1
    ports:
      - 2181:2181
    environment:
      ZOO_MY_ID: 1
      ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181

  zoo2:
    image: zookeeper
    restart: always
    hostname: zoo2
    ports:
      - 2182:2181
    environment:
      ZOO_MY_ID: 2
      ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181

  zoo3:
    image: zookeeper
    restart: always
    hostname: zoo3
    ports:
      - 2183:2181
    environment:
      ZOO_MY_ID: 3
      ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181
  • 查看集群状态
# 进入容器
docker exec -it zk-single_zoo1_1 bash
# 
./bin/zkServer.sh status

Using config: /conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower

zookeeper多机集群

  • 机器
节点 ip zk
node1 10.0.0.99 zk1
node2 10.0.0.100 zk2
node3 10.0.0.101 zk3
  • 分别创建目录
# 99
mkdir -p zk1
#100
mkdir -p zk2
#101
mkdir -p zk3
  • docker-compose.yaml
# 10.0.0.99
version: '3.1'

services:
  zoo:
    image: zookeeper
    restart: always
    hostname: zoo1
    ports:
      - 2181:2181
      - 2888:2888
      - 3888:3888
    environment:
      ZOO_MY_ID: 1
      ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=10.0.0.100:2888:3888;2181 server.3=10.0.0.101:2888:3888;2181
# 10.0.0.100
version: '3.1'

services:
  zoo:
    image: zookeeper
    restart: always
    hostname: zoo2
    ports:
      - 2181:2181
      - 2888:2888
      - 3888:3888
    environment:
      ZOO_MY_ID: 2
      ZOO_SERVERS: server.1=10.0.0.99:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=10.0.0.101:2888:3888;2181
# 10.0.0.101
version: '3.1'

services:
  zoo:
    image: zookeeper
    restart: always
    hostname: zoo3
    ports:
      - 2181:2181
      - 2888:2888
      - 3888:3888
    environment:
      ZOO_MY_ID: 3
      ZOO_SERVERS: server.1=10.0.0.99:2888:3888;2181 server.2=10.0.0.100:2888:3888;2181 server.3=zoo3:2888:3888;2181

ZK+Kafka单机集群

  • 创建资源目录
mkdir -p kafka-single
  • docker-compose.yaml
version: '3.1'
services:
  zoo1:
    image: zookeeper
    restart: always
    hostname: zoo1
    ports:
      - 2181:2181
    environment:
      ZOO_MY_ID: 1
      ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181

  zoo2:
    image: zookeeper
    restart: always
    hostname: zoo2
    ports:
      - 2182:2181
    environment:
      ZOO_MY_ID: 2
      ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181

  zoo3:
    image: zookeeper
    restart: always
    hostname: zoo3
    ports:
      - 2183:2181
    environment:
      ZOO_MY_ID: 3
      ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181

  kafka1:
    image: wurstmeister/kafka
    restart: always
    hostname: kafka1
    container_name: kafka1
    ports:
      - 9092:9092
    environment:
      KAFKA_ADVERTISED_HOST_NAME: kafka1
      KAFKA_ADVERTISED_PORT: 9092
      KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2182,zoo3:2183
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka1:9092
      KAFKA_LISTENERS: PLAINTEXT://kafka1:9092
      KAFKA_DEFAULT_REPLICATION_FACTOR: 2
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 2
    volumes:
      - ./kafka1/logs:/kafka
  kafka2:
    image: wurstmeister/kafka
    restart: always
    hostname: kafka2
    container_name: kafka2
    ports:
      - 9093:9092
    environment:
      KAFKA_ADVERTISED_HOST_NAME: kafka2
      KAFKA_ADVERTISED_PORT: 9092
      KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2182,zoo3:2183
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka2:9092
      KAFKA_LISTENERS: PLAINTEXT://kafka2:9092
      KAFKA_DEFAULT_REPLICATION_FACTOR: 2
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 2
    volumes:
      - ./kafka2/logs:/kafka
  kafka3:
    image: wurstmeister/kafka
    restart: always
    hostname: kafka3
    container_name: kafka3
    ports:
      - 9094:9092 
    environment:
      KAFKA_ADVERTISED_HOST_NAME: kafka3
      KAFKA_ADVERTISED_PORT: 9092
      KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2182,zoo3:2183
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka3:9092
      KAFKA_LISTENERS: PLAINTEXT://kafka3:9092
      KAFKA_DEFAULT_REPLICATION_FACTOR: 2
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 2
    volumes:
      - ./kafka3/logs:/kafka
  • 测试集群
# 生产者
docker exec -it  kafka1 bash

# 创建topic

kafka-topics.sh --create --zookeeper 10.0.0.99:2181 --replication-factor 1 --partitions 1 --topic test1

# 容器1发送消息

kafka-console-producer.sh --broker-list 10.0.0.99:9092 --topic test1

# 进入kakfa2容器查看消息
docker exec -it  kafka2 bash

kafka-console-consumer.sh --bootstrap-server 10.0.0.99:9092 --topic test1 --from-beginning

Kafka多机集群

  • 和多机zk配合使用
# 10.0.0.99
version: '3.1'
services:
  kafka1:
    image: wurstmeister/kafka
    restart: always
    hostname: kafka1
    container_name: kafka1
    ports:
      - 9092:9092
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_ADVERTISED_HOST_NAME: 10.0.0.99
      KAFKA_ADVERTISED_PORT: 9092
      KAFKA_ZOOKEEPER_CONNECT: 10.0.0.99:2181,10.0.0.100:2181,10.0.0.101:2181
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://10.0.0.99:9092
      KAFKA_LISTENERS: PLAINTEXT://kafka1:9092
      KAFKA_DEFAULT_REPLICATION_FACTOR: 2
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 2
    volumes:
      - ./logs:/kafka
# 10.0.0.100
version: '3.1'
services:
  kafka2:
    image: wurstmeister/kafka
    restart: always
    hostname: kafka2
    container_name: kafka2
    ports:
      - 9092:9092
    environment:
      KAFKA_BROKER_ID: 2
      KAFKA_ADVERTISED_HOST_NAME: 10.0.0.100
      KAFKA_ADVERTISED_PORT: 9092
      KAFKA_ZOOKEEPER_CONNECT: 10.0.0.99:2181,10.0.0.100:2181,10.0.0.101:2181
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://10.0.0.100:9092
      KAFKA_LISTENERS: PLAINTEXT://kafka2:9092
      KAFKA_DEFAULT_REPLICATION_FACTOR: 2
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 2
    volumes:
      - ./logs:/kafka
# 10.0.0.101
version: '3.1'
services:
  kafka3:
    image: wurstmeister/kafka
    restart: always
    hostname: kafka3
    container_name: kafka3
    ports:
      - 9092:9092
    environment:
      KAFKA_BROKER_ID: 3
      KAFKA_ADVERTISED_HOST_NAME: 10.0.0.101
      KAFKA_ADVERTISED_PORT: 9092
      KAFKA_ZOOKEEPER_CONNECT: 10.0.0.99:2181,10.0.0.100:2181,10.0.0.101:2181
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://10.0.0.101:9092
      KAFKA_LISTENERS: PLAINTEXT://kafka3:9092
      KAFKA_DEFAULT_REPLICATION_FACTOR: 2
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 2
    volumes:
      - ./logs:/kafka

NSQ 单机部署

version: '3'
services:
  nsqlookupd_0:
    image: nsqio/nsq
    command: /nsqlookupd --broadcast-address=10.3.1.127 --tcp-address=:14160 --http-address=:14161
    restart: always
    ports:
      - "14160:14160"
      - "14161:14161"
  nsqlookupd_1:
    image: nsqio/nsq
    command: /nsqlookupd --broadcast-address=10.3.1.127 --tcp-address=:14170 --http-address=:14171
    restart: always
    ports:
      - "14170:14170"
      - "14171:14171"
  nsqd_0:
    image: nsqio/nsq
    command: /nsqd  --broadcast-address=10.3.1.127 --tcp-address=:14150 --http-address=:14151 --lookupd-tcp-address=10.3.1.127:14160 --lookupd-tcp-address=10.3.1.127:14170
    depends_on:
      - nsqlookupd_0
      - nsqlookupd_1
    ports:
      - "14150:14150"
      - "14151:14151"
    restart: always
    volumes:
      - /home/duyong/dy_work/docker_data/nsq_simple/0_nsqd_data:/data
  nsqd_1:
    image: nsqio/nsq
    command: /nsqd  --broadcast-address=10.3.1.127 --tcp-address=:14140 --http-address=:14141 --lookupd-tcp-address=10.3.1.127:14160 --lookupd-tcp-address=10.3.1.127:14170
    depends_on:
      - nsqlookupd_0
      - nsqlookupd_1
    ports:
      - "14140:14140"
      - "14141:14141"
    restart: always
    volumes:
      - /home/duyong/dy_work/docker_data/nsq_simple/1_nsqd_data:/data
  nsqd_2:
    image: nsqio/nsq
    command: /nsqd  --broadcast-address=10.3.1.127 --tcp-address=:14130 --http-address=:14131 --lookupd-tcp-address=10.3.1.127:14160 --lookupd-tcp-address=10.3.1.127:14170
    depends_on:
      - nsqlookupd_0
      - nsqlookupd_1
    ports:
      - "14130:14130"
      - "14131:14131"
    restart: always
    volumes:
      - /home/duyong/dy_work/docker_data/nsq_simple/2_nsqd_data:/data
  nsqadmin:
    image: nsqio/nsq
    command: /nsqadmin --lookupd-http-address=nsqlookupd:14161 --lookupd-http-address=nsqlookupd:14171
    depends_on:
      - nsqlookupd_0
      - nsqlookupd_1
    ports:
      - "4171:4171"
    restart: always

Redis

version: '3'
services:
  redis:
    image: redis:latest
    container_name: duyong_redis
    volumes:
      - ./data:/data
      - ./redis.conf:/usr/local/etc/redis/redis.conf
      - ./logs:/logs
    ports:
      - 6379:6379
    restart: always
Copyright © Du Yong all right reserved,powered by Gitbook该文件修订时间: 2022-10-29 10:25:04

results matching ""

    No results matching ""