如何安装项目需要的中间件环境
项目中设计到的中间件有Mysql、Redis、Kafka,本文介绍如何在本地进行安装这些中间件
安装Mysql
下载镜像
docker pull mysql:5.7
创建数据卷
docker volume create mysql57-data
启动容器
docker run -d \
--name mysql57 \
-p 3306:3306 \
--restart unless-stopped \
-e MYSQL_ROOT_PASSWORD='设置你的密码' \
-e MYSQL_ROOT_HOST='%' \
-e TZ='Asia/Shanghai' \
-v mysql57-data:/var/lib/mysql \
mysql:5.7 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci
- --name mysql57 容器名为mysql
- -p 3306:3306 映射宿主机和容器的端口号
- -e MYSQL_ROOT_PASSWORD='设置你的密码' 要设置你的数据库密码
- -v mysql57-data:/var/lib/mysql 将Mysql的数据卷持久化到宿主机
安装Redis
下载镜像
docker pull redis:6.0.8
启动容器
docker run -d \
--name redis \
-p 0.0.0.0:6379:6379 \
--restart unless-stopped \
redis:6.0.8 \
redis-server --requirepass "修改成你自己的密码" --bind 0.0.0.0
安装Zookeeper
下载镜像
docker search zookeeper
docker pull zookeeper
配置文件
新建文件夹
mkdir -p /usr/local/zookeeper/conf
将zookeeper的配置文件放入此文件夹内
配置文件 文件名zoo.cfg
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/data
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
## Metrics Providers
#
# https://prometheus.io Metrics Exporter
#metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
#metricsProvider.httpPort=7000
#metricsProvider.exportJvmInfo=true
启动容器
docker run -d \
--name zookeeper \
--privileged=true \
-p 2181:2181 \
--restart=always \
-v /usr/local/zookeeper/data:/data \
-v /usr/local/zookeeper/conf:/conf \
-v /usr/local/zookeeper/logs:/datalog \
zookeeper
安装Kafka
下载镜像
docker search wurstmeister/kafka
docker pull wurstmeister/kafka
启动容器
docker run -d --name kafka \
-p 9092:9092 \
-e KAFKA_BROKER_ID=0 \
-e KAFKA_ZOOKEEPER_CONNECT=zookeeper地址:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://本地ip:9092 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 wurstmeister/kafka
- -e KAFKA_ZOOKEEPER_CONNECT 指定zookeeper地址,如果zookeeper和kafka部署在一台云服务器,则地址可配置内网ip
- -e KAFKA_ADVERTISED_LISTENERS Kafka 的一个环境变量,用于指定 Kafka 将如何通告客户端它在外部可访问的地址。如果是云服务器,则得是公网ip,因为客户端连接的kafka地址要和这个一样