java常用环境docker安装

本文详细介绍了如何在容器中配置RocketMQ、Nacos、Zookeeper、Kafka、MySQL、Redis、Seata和Elasticsearch等IT服务,包括必要的环境变量设置、端口映射和文件路径,以供学习和轻量级部署使用。
摘要由CSDN通过智能技术生成


本文为精简安装,部分不带容器卷映射,仅供以学习使用。

rocketmq

  1. nameservice
 sudo docker run -d \
--privileged=true \
--name rmqnamesrv \
-p 9876:9876  \
-e "MAX_HEAP_SIZE=256M" \
-e "HEAP_NEWSIZE=128M" \
apache/rocketmq:5.1.0 sh mqnamesrv
  1. broker

修改broker.conf

# nameServer 地址多个用;隔开 默认值null
# 例:127.0.0.1:6666;127.0.0.1:8888
namesrvAddr = 10.3.89.152:9876
# 集群名称
brokerClusterName = DefaultCluster
# 节点名称
brokerName = broker-a
# broker id节点ID, 0 表示 master, 其他的正整数表示 slave,不能小于0
brokerId = 0
# Broker服务地址        String  内部使用填内网ip,如果是需要给外部使用填公网ip
brokerIP1 = 10.3.89.152
# Broker角色
brokerRole = ASYNC_MASTER
# 刷盘方式
flushDiskType = ASYNC_FLUSH
# 在每天的什么时间删除已经超过文件保留时间的 commit log,默认值04
deleteWhen = 04
# 以小时计算的文件保留时间 默认值72小时
fileReservedTime = 72
# 是否允许Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
# 是否允许Broker自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true

运行容器

docker run -d \
--name rmqbroker \
-p 10911:10911 -p 10909:10909 \
--privileged=true \
-v /home/yi/rocketmq/conf/broker.conf:/home/rocketmq/broker.conf \
-e "MAX_HEAP_SIZE=512M" \
-e "HEAP_NEWSIZE=256M" \
apache/rocketmq:5.1.0 \
sh mqbroker -c /home/rocketmq/broker.conf
  1. mqconsole
    注意这里的IP应该为主机的外网IP。
docker run -d --name rmqconsole -e "JAVA_OPTS=-Drocketmq.namesrv.addr=10.3.89.152:9876 -Dcom.rocke
tmq.sendMessageWithVIPChannel=false" -p 8088:8080 -t styletang/rocketmq-console-ng

配置完成后访问 http://localhost:8088/#/ 即可看到管理界面。

redis

docker run -p 6379:6379 --name redis  -d redis redis-server --requirepass "123456"

配置了布隆过滤器:
https://www.cnblogs.com/chenshuquan/p/11696961.html

mysql

mysql配置较为繁琐,如果不需要开启binlog可以直接运行第一个。

不配置binlog

docker run \
--name mysql \
-d \
-p 3306:3306 \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.7

配置binlog

  1. 从容器中获取mysqld.cnf文件
docker run --name mysql \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql

# /home/yi/mysql/conf 是本地目录,没有的话需要创建
docker cp mysql:/etc/mysql/mysql.conf.d/mysqld.cnf /home/yi/mysql/conf
  1. 配置开启binlog
#在/home/yi/mysql/conf/mysqld.cnf中添加:
# 配置文件中添加如下内容,注意是在在[mysqld]目录中
log-bin=mysql-bin  # 开启 binlog
binlog-format=ROW  # 选择 ROW 模式
server-id=1 # 配置 MySQL replaction 需要定义,不要和 canal 的 slaveId 重复
  1. 以配置文件启动容器
    这里conf、log、data目录都需要自己创建
#删除mysql容器
docker rm -f mysql
#创建mysql容器
 docker run -itd --name mysql \
 -e MYSQL_ROOT_PASSWORD=123456 \
-p 3306:3306 \
-v /etc/localtime:/etc/localtime \
-v /home/yi/mysql/conf:/etc/mysql/mysql.conf.d \
-v /home/yi/mysql/log:/var/log/mysql \
-v /home/yi/mysql/data:/var/lib/mysql \
 mysql
  1. 可选项
#可选项 授权root账号所有IP能够访问
# 使用 MySQL 容器中的命令行
docker exec -it mysql /bin/bash

# 使用 MySQL 命令打开客户端:
mysql -uroot -p123456 --default-character-set=utf8

# 接着创建一个账户,该账号所有 IP 都能够访问
grant all privileges on *.* to 'root' @'%' identified by 'root';

# 刷新生效
FLUSH PRIVILEGES;

# 查看 binlog 日志是否开启
show variables like 'log_%';

# 查看主结点当前状态
show master status;

Nacos

docker run \
-d -p 8848:8848 \
-p 9848:9848 \
--name nacos2 \
-e MODE=standalone \
-e TIME_ZONE='Asia/Shanghai' \
nacos/nacos-server:v2.1.1

访问:http://localhost:8848/nacos/ 即可进入管理界面

zookeeper

docker run -d -e TZ="Asia/Shanghai" -p 2181:2181 -v /home/yi/zookeeper:/data --name zookeeper  zookeeper

验证安装:

#进入容器
docker exec -it zookeeper bash      //只登录容器,不登录 zkCli
 ./bin/zkCli.sh    //执行脚本新建一个Client,即进入容器
create /test   //创建test节点
ls /                 //查找当前创造的节点[test, zookeeper]

kafka

安装之前需要先安装zookeeper

docker run  -d --name kafka -p 9092:9092 -e KAFKA_ZOOKEEPER_CONNECT=10.3.89.152:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://10.3.89.152:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t wurstmeister/kafka

minio

docker run -d \-p 9000:9000 \-p 9001:9001 \--name minio  \-e "MINIO_ROOT_USER=minio" \-e "MINIO_ROOT_PASSWORD=minio123" \minio/minio server /data --console-address ":9001"

seata 2.0

注意要把所有IP改成对外暴露的IP。

创建application.yml,用来配置seata。

server:
  port: 7091

spring:
  application:
    name: seata-server

logging:
  config: classpath:logback-spring.xml
  file:
    path: ${user.home}/logs/seata
  extend:
    logstash-appender:
      destination: 127.0.0.1:4560
    kafka-appender:
      bootstrap-servers: 127.0.0.1:9092
      topic: logback_to_logstash

console:
  user:
    username: seata
    password: seata

seata:
  config:
    # support: nacos, consul, apollo, zk, etcd3
    type: nacos
    nacos:
      server-addr: 10.3.89.152:8848
      namespace:
      group: DEFAULT_GROUP
      username: nacos
      password: nacos
      data-id: seataServer.properties

  registry:
    # support: nacos, eureka, redis, zk, consul, etcd3, sofa
    type: nacos
    nacos:
      application: seata-tc-server
      server-addr: 10.3.89.152:8848
      group: DEFAULT_GROUP
      namespace:
      # tc集群名称
      cluster: SH
      username: nacos
      password: nacos
  #  server:
  #    service-port: 8091 #If not configured, the default is '${server.port} + 1000'
  security:
    secretKey: SeataSecretKey0c382ef121d778043159209298fd40bf3850a017
    tokenValidityInMilliseconds: 1800000
    ignore:
      urls: /,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/api/v1/auth/login

运行容器

docker run --name seata-server \
		-itd \
        -p 8091:8091 \
        -p 7091:7091 \
        -e STORE_MODE=db \
        -e SEATA_IP="10.3.89.152" \
        -e SEATA_PORT=8091 \
        -v "/home/yi/seata/application.yml:/seata-server/resources/application.yml" \
        seataio/seata-server:2.0.0

配置成功后,可以访问http://localhost:7091/,下图为使用@GlobalTransanction 回滚后的日志。
在这里插入图片描述

elasticsearch

docker pull elasticsearch:7.4.0
docker run -id --name elasticsearch -d  -p 9200:9200 -p 9300:9300 -v /home/yi/elasticsearch/plugins:/usr/share/elasticsearch/plugins -e "discovery.type=single-node" elasticsearch:7.4.0

下载分词器

wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.4.0/elasticsearch-analysis-ik-7.4.0.zip

将分词器解压到/home/yi/elasticsearch/plugins目录,重启docker即可。
测试:
用postman访问post: IP:9200/_analyze
body携带raw:
{
“analyzer”:“ik_max_word”,
“text”:“欢迎来到china”
}

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值