【Docker-compose 拉取镜像部署基础环境-哔哩哔哩-点下关注呗 】
1、Ubuntu 安装Docker
2、安装 redis、zookeeper、kafka、postgres、cassandra
1、新建文件docker-compose.yml
2、运行docker-compose up -d
3、如果启动提示权限不足的话
sudo chmod -R 777 /opt/project/docker
services:
nginx-web:
image: nginx:1.26.2
container_name: nginx-web
environment:
# 时区上海
TZ: Asia/Shanghai
ports:
- "80:80"
- "443:443"
volumes:
# 证书映射
- ./nginx/cert:/etc/nginx/cert
# 配置文件映射
- ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf
# 配置目录
- ./nginx/conf/webConf:/usr/share/nginx/conf/webConf
# 页面目录
- ./nginx/html:/usr/share/nginx/html
# 日志目录
- ./nginx/log:/var/log/nginx
# 容器重启策略,容器崩溃时自动重启
# restart: unless-stopped
network_mode: "host"
# logging:
# driver: "json-file"
# options:
# max-size: "10m" # 限制每个日志文件的最大大小
# max-file: "30" # 保留最近的 30 个日志文件
redis:
image: bitnami/redis:7.4
container_name: redis
ports:
- "6379:6379"
environment:
# 时区上海
TZ: Asia/Shanghai
volumes:
# 配置文件
- ./redis/conf:/redis/config
# 数据文件
- ./redis/data/:/redis/data/
command: "redis-server /redis/config/redis.conf"
network_mode: "host"
zookeeper:
image: 'bitnami/zookeeper:3.9.0'
container_name: zookeeper
ports:
- "2181:2181"
volumes:
- ./zookeeper:/bitnami/zookeeper
environment:
TZ: Asia/Shanghai
ALLOW_ANONYMOUS_LOGIN: "yes"
ZOO_SERVER_ID: 1
ZOO_PORT_NUMBER: 2181
# 自带的控制台 一般用不上可自行开启
ZOO_ENABLE_ADMIN_SERVER: "no"
# 自带控制台的端口
ZOO_ADMIN_SERVER_PORT_NUMBER: 8080
network_mode: "host"
#需要给挂载目录符权限 sudo chmod -R 777 /opt/project/docker/kafka
kafka:
image: 'bitnami/kafka:3.9.0'
container_name: kafka
ports:
- "9092:9092"
environment:
TZ: Asia/Shanghai
# 更多变量 查看文档 https://github.com/bitnami/containers/tree/main/bitnami/kafka
# 设置Kafka Broker ID为1
KAFKA_BROKER_ID: 1
# 监听端口
KAFKA_CFG_LISTENERS: PLAINTEXT://:9092
# 实际访问ip 本地用 127 内网用 192 外网用 外网ip
KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://106.119.162.66:9092
# 指定Kafka连接的Zookeeper实例
KAFKA_CFG_ZOOKEEPER_CONNECT: 127.0.0.1:2181
# 指定 Kafka 日志存储目录
# KAFKA_CFG_LOG_DIRS: /bitnami/kafka/logs
# 允许Kafka监听器使用明文传输
ALLOW_PLAINTEXT_LISTENER: "yes"
volumes:
- ./kafka:/bitnami/kafka
depends_on:
- zookeeper
network_mode: "host"
postgres:
image: postgres:17.2
container_name: postgres
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: postgres
ports:
- "5432:5432"
volumes:
- ./postgres/data:/var/lib/postgresql/data
network_mode: "host"
# git地址 https://github.com/bitnami/containers/tree/main/bitnami/cassandra
cassandra:
image: "bitnami/cassandra:5.0"
container_name: cassandra
# restart: "always"
ports:
- "7000:7000"
- "9042:9042"
volumes:
- ./cassandra:/bitnami/cassandra
network_mode: "host"
environment:
# 开启密码认证
CASSANDRA_PASSWORD_SEEDER: yes
# 设置管理员密码
CASSANDRA_PASSWORD: cassandra
# 默认情况下,Cassandra会自动检测可用的主机内存,并尽可能多地占用。
# 因此,如果在同一节点中启动多个Cassandras,则内存选项是必需的。
HEAP_NEWSIZE: "1024M"
MAX_HEAP_SIZE: "2048M"
3、redis.conf配置文件
# redis 密码
requirepass password
# key 监听器配置
# notify-keyspace-events Ex
# 配置持久化文件存储路径
dir /redis/data
# 配置rdb
# 15分钟内有至少1个key被更改则进行快照
save 900 1
# 5分钟内有至少10个key被更改则进行快照
save 300 10
# 1分钟内有至少10000个key被更改则进行快照
save 60 10000
# 开启压缩
rdbcompression yes
# rdb文件名 用默认的即可
dbfilename dump.rdb
# 开启aof
appendonly yes
# 文件名
appendfilename "appendonly.aof"
# 持久化策略,no:不同步,everysec:每秒一次,always:总是同步,速度比较慢
# appendfsync always
appendfsync everysec
# appendfsync no
4、cassandra 安装
5、kafka 可视化页面
官网地址:https://github.com/obsidiandynamics/kafdrop
下载最新的 jar 包上传到云服务器
java --add-opens=java.base/sun.nio.ch=ALL-UNNAMED -jar kafdrop-4.1.0.jar --kafka.brokerConnect=127.0.0.1:9092 --server.port=9999