Skip to content

安装Redis

下载镜像

docker pull redis:6.0.8

启动容器

docker run -d --name redis -p 6379:6379 -e  redis:6.0.8

nacos启动容器(开启鉴权方式)

docker run -d -p 8848:8848 -p 9848:9848 -e MODE=standalone -e nacos.core.auth.enabled=true -e nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789 -e nacos.core.auth.server.identity.key=XN3zr6HfJV%LjUPjRBQzBB -e nacos.core.auth.server.identity.value=B3CU%K3AxEAMrgPBdKLRQRL --name nacos-server nacos/nacos-server:v2.2.3

Zookeeper启动容器

docker run -d --name zookeeper --privileged=true -p 2181:2181 --restart=always -v D:/workspace_dir_hostzookeeper/data:/data -v D:/workspace_dir_hostzookeeper/conf:/conf -v D:/workspace_dir_hostzookeeper/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=172.17.0.2:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://127.0.0.1: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地址要和这个一样

安装ElasticSearch

为了和后续的Kibana相通信,需要先用 docker 创建一个网络

建立容器间的通信

docker network create elk

下载镜像

docker pull elasticsearch:8.5.2

启动容器

docker run -d --name es --net elk -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms768m -Xmx768m" -e "xpack.security.http.ssl.enabled=false" -e "xpack.security.enrollment.enabled=true" elasticsearch:8.5.2
  • -p (小写)映射端口号,主机端口:容器端口
  • -P(大写)随机为容器指定端口号
  • –name 指定容器别名
  • –net 连接指定网络
  • -e 指定启动容器时的环境变量
  • -d 后台运行容器
  • xpack.security.http.ssl.enabled=false 关闭https访问
  • xpack.security.enrollment.enabled=true 设置为true,可设置密码

设置密码

# 进入容器
docker exec -it es /bin/bash

# 执行命令配置密码
./bin/elasticsearch-setup-passwords interactive

设置成功后,输入地址 ip:9200,登入密码看到如下页面说明安装成功

Changed password for user [apm_system]
Changed password for user [kibana_system]
Changed password for user [kibana]
Changed password for user [logstash_system]
Changed password for user [beats_system]
Changed password for user [remote_monitoring_user]
Changed password for user [elastic]

密码:123456

kibana_system
密码:qwerty

es用户修改指定的密码

./elasticsearch-reset-password --username 用户名 -i

例:重置kibana 用户的密码

./elasticsearch-reset-password --username kibana -i

安装Kibana

这里Kibana的版本最好和ElasticSearch的版本一致

下载镜像

docker pull kibana:8.5.2

PS C:\Users\15129> docker network ls
NETWORK ID     NAME           DRIVER    SCOPE
6c3266a046fd   bridge         bridge    local
76e67ca4b8f7   elk            bridge    local
74cdd5c64769   host           host      local
fd6a68fe8b5c   minikube       bridge    local
0328429f565e   none           null      local
88dd02866fa6   onebot-agent   bridge    local

PS C:\Users\15129> docker network inspect elk

启动容器

docker run -d --name kibana --net elk -p 5601:5601 -e ELASTICSEARCH_HOSTS=http://172.19.0.2:9200 -e ELASTICSEARCH_USERNAME="kibana_system" -e ELASTICSEARCH_PASSWORD="qwerty" -e "I18N_LOCALE=zh-CN" kibana:8.5.2
  • -p 5601:5601 映射端口号
  • -e ELASTICSEARCH_HOSTS=http://ElasticSearch的地址:9200 指定ElasticSearch地址
  • -e ELASTICSEARCH_USERNAME="kibana_system" 指定ElasticSearch账户
  • -e ELASTICSEARCH_PASSWORD="密码" 指定ElasticSearch账户密码
  • I18N_LOCALE=zh-CN 开启 kibana 的汉化

启动kibana后,输入地址 ip:5601,出现如下页面说明启动成功

-XX:MaxMetaspaceSize=256M -Xmx256M -Dspring.data.redis.password=qaz123 -Dspring.cloud.nacos.discovery.server-addr=127.0.0.1:8848 -Dspring.kafka.bootstrap-servers=127.0.0.1:9092 -Delasticsearch.ip=127.0.0.1:9200 -Delasticsearch.userName=elastic -Delasticsearch.passWord=123 -Dprefix.distinction.name=my

好的,根据您提供的 docker network inspect 命令输出,以下是每个容器的 IPv4 地址总结:

网络 bridge (网段: 172.17.0.0/16)

容器名称 (Container Name)IPv4 地址 (IPv4 Address)
nacos-server172.17.0.5
kafka172.17.0.6
redis172.17.0.4
mysql172.17.0.3
zookeeper172.17.0.2

网络 elk (网段: 172.19.0.0/16)

容器名称 (Container Name)IPv4 地址 (IPv4 Address)
kibana172.19.0.3
es (Elasticsearch)172.19.0.2

关键信息解读:

  • 两个独立的网络: 您的 Docker 环境中配置了至少两个不同的桥接网络:默认的 bridge 网络和自定义的 elk 网络。
  • 不同网段: 每个网络都有自己的独立 IP 地址段(172.17.x.x172.19.x.x)。
  • 网络隔离:
    • 默认情况下,连接到同一个自定义网络(如 elk 网络)的容器(kibanaes)之间可以通过容器名称直接通信。
    • 不同网络中的容器(例如 kafkaes)默认是隔离的,不能直接通过容器名称进行通信。如果需要它们通信,需要将它们连接到同一个网络中。