目錄
搭建docker
1.2安裝yum工具?
1.3更新阿里鏡像源
1.4下載docker
1.5關閉防火墻
1.6啟動docker
1.7查看docker版本
1.8配置阿里云鏡像
1.8.1 創(chuàng)建文件夾
1.8.2在文件夾內(nèi)新建一個daemon.json文件
1.8.3重載文件
1.9重啟docker
2安裝MySQL
3安裝nacos
3.1拉取nacos鏡像并啟動
3.2啟動nacos命令
3.3命令敲完了,檢查一下Nacos運行狀態(tài).
4.安裝redis集群及哨兵
redis版本
主從結構
啟動主redis
啟動1號從redis
啟動2號從redis
查看主從信息info replication
哨兵 sentinel
哨兵1號
啟動2號哨兵
啟動3號哨兵
查看哨兵情況
哨兵測試
哨兵常見問題
配置文件映射
哨兵myid
安裝:elasticsearch
5.1下載鏡像并運行
5.2拉取鏡像
5.3啟動鏡像
5.4如出現(xiàn)異??刹榭慈萜鳟惓H罩?/p>
5.4.1查看容器異常日志
5.4.5然后重新啟動容器
部署kibana
6.1下載kibana
6.2部署
6.3 kibana啟動一般比較慢,需要多等待一會,可以通過命令:
7.安裝IK分詞器
7.1?進入容器內(nèi)部
7.2?在線下載并安裝
7.3退出
7.4重啟容器
7.5查看數(shù)據(jù)卷目錄
顯示結果:
7.6?解壓縮分詞器安裝包
7.7.重啟容器
查看es日志
7.8測試:
8.安裝Rabbitmq第一步:
8.1拉取鏡像:docker pull rabbitmq
8.2查看鏡像:docker images
8.3第二步:
創(chuàng)建并啟動RabbitMQ容器:
8.4第三步:
8.5第四步:
8.6打開rabbitmq管理界面。點擊channels,會報如下錯誤:
8.6.1進入rabbitmq容器
8.6.2進入容器后,cd到以下路徑
8.6.3修改 management_agent.disable_metrics_collector = false
8.6.4退出容器
8.6.5重啟rabbitmq容器
在Linux系統(tǒng)中安裝并配置maven詳細教程
9.kafka安裝配置
虛擬配置
搭建docker
Docker容器化解決方案
1.1.卸載(可選)?
如果之前安裝過舊版本的Docker,可以使用下面命令卸載:
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine \
docker-ce
1.2安裝yum工具?
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2 --skip-broken
1.3更新阿里鏡像源
# 設置docker鏡像源
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g'
/etc/yum.repos.d/docker-ce.repo
yum makecache fast
1.4下載docker
yum install -y docker-ce?
docker-ce為社區(qū)免費版本。稍等片刻,docker即可安裝成功
1.5關閉防火墻
# 關閉
systemctl stop firewalld?
# 禁止開機啟動防火墻
systemctl disable firewalld
#查看是否關閉防火墻
systemctl status firewalld
1.6啟動docker
systemctl start docker?# 啟動docker服務
systemctl stop docker?# 停止docker服務
systemctl restart docker?# 重啟docker服務
1.7查看docker版本
docker -v
1.8配置阿里云鏡像
1.8.1 創(chuàng)建文件夾
sudo mkdir -p /etc/docker
1.8.2在文件夾內(nèi)新建一個daemon.json文件
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://akchsmlh.mirror.aliyuncs.com"]
}
EOF
1.8.3重載文件
sudo systemctl daemon-reload
1.9重啟docker
systemctl restart docker?# 重啟docker服務
2安裝MySQL
docker run --name mysql -p 3306:3306 -v /server/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /server/mysql/data:/var/lib/mysql -v /server/mysql/log:/var/log/mysql -e MYSQL_ROOT_PASSWORD=?123456--restart=always -d mysql:5.7
將安裝好的MySQL與Navicat進行鏈接 用戶名:root 密碼:123456
可添加云盤ssh加密
3安裝nacos
3.1拉取nacos鏡像并啟動
首先,我們先啟動并檢查docker運行狀態(tài)
systemctl start docker???---啟動docker
systemctl restart ?docker?---重啟docker
systemctl status docker ??---檢測docker運行狀態(tài)
docker pull nacos/nacos-server:v2.1.2可 (:1.2.1 )指定版本號 ?拉取nacos服務
3.2啟動nacos命令
docker run -d --name nacos -p 8848:8848?-p 9848:9848 -p 9849:9849?-e PREFER_HOST_MODE=hostname -e MODE=standalone nacos/nacos-server:v2.1.2
3.3命令敲完了,檢查一下Nacos運行狀態(tài).
4.安裝redis集群及哨兵
redis版本
我們使用7.0.2版本。用到的服務器上的redis最好統(tǒng)一版本。
docker pull redis:7.0.2
官網(wǎng)找對應的安裝包 Index of /releases/
得到redis.conf和sentinel.conf文件
主從結構
一個主redis,2個從redis。它們使用不同的3個端口,注意檢查防火墻的設置。
啟動主redis
主redis,即master,啟動主redis容器
docker run --restart=always -p 6379:6379 --name redis-CNT-MASTER \ -d redis:7.0.2 redis-server --requirepass 778899 --masterauth 778899
-
6379:6379
指定服務器的6379對應redis容器里的6379端口 -
--requirepass 778899
設定密碼(可以不設置) -
--masterauth 778899
從redis連上來需要的密碼(可以不設置)
進入容器查看狀態(tài)
docker exec -it redis-CNT-MASTER redis-cli 127.0.0.1:6379> auth 778899 OK 127.0.0.1:6379> info replication
啟動1號從redis
從redis使用配置的方式
文件結構 /home/reids/conf/redis-slave1
├── data └── redis.conf
1號從redis的redis.conf
slaveof x.x.x.x 6379 replica-announce-ip x.x.x.x replica-announce-port 6380 protected-mode no port 6379 masterauth 123456 requirepass 123456 ? tcp-backlog 511 timeout 0 tcp-keepalive 300 daemonize no pidfile /var/run/redis_6379.pid loglevel notice logfile "" databases 16 always-show-logo no set-proc-title yes proc-title-template "{title} {listen-addr} {server-mode}" stop-writes-on-bgsave-error yes rdbcompression yes rdbchecksum yes dbfilename dump.rdb rdb-del-sync-files no dir ./ replica-serve-stale-data yes replica-read-only yes repl-diskless-sync yes repl-diskless-sync-delay 5 repl-diskless-sync-max-replicas 0 repl-diskless-load disabled repl-disable-tcp-nodelay no replica-priority 100 acllog-max-len 128 lazyfree-lazy-eviction no lazyfree-lazy-expire no lazyfree-lazy-server-del no replica-lazy-flush no lazyfree-lazy-user-del no lazyfree-lazy-user-flush no oom-score-adj no oom-score-adj-values 0 200 800 disable-thp yes appendonly yes appendfilename "appendonly.aof" appenddirname "appendonlydir" appendfsync everysec no-appendfsync-on-rewrite no auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb aof-load-truncated yes aof-use-rdb-preamble yes aof-timestamp-enabled no slowlog-log-slower-than 10000 slowlog-max-len 128 latency-monitor-threshold 0 notify-keyspace-events "" hash-max-listpack-entries 512 hash-max-listpack-value 64 list-max-listpack-size -2 list-compress-depth 0 set-max-intset-entries 512 zset-max-listpack-entries 128 zset-max-listpack-value 64 hll-sparse-max-bytes 3000 stream-node-max-bytes 4096 stream-node-max-entries 100 activerehashing yes client-output-buffer-limit normal 0 0 0 client-output-buffer-limit replica 256mb 64mb 60 client-output-buffer-limit pubsub 32mb 8mb 60 hz 10 dynamic-hz yes aof-rewrite-incremental-fsync yes rdb-save-incremental-fsync yes jemalloc-bg-thread yes
啟動1號從redis
docker run --restart=always -p 6380:6379 --name redis-slave1 \ -v /home/reids/conf/redis-slave1/redis.conf:/etc/redis/redis.conf \ -v /home/reids/conf/redis-slave1/data:/data \ -d redis:7.0 redis-server /etc/redis/redis.conf
啟動2號從redis
配置文件可以復制1號的。然后記得修改它的宣稱ip和端口
replica-announce-ip x.x.x.x replica-announce-port 6381 # 2號用的端口
啟動2號從redis
docker run --restart=always -p 6381:6379 --name redis-slave2 \ -v /home/reids/conf/redis-slave2/redis.conf:/etc/redis/redis.conf \ -v /home/reids/conf/redis-slave2/data:/data \ -d redis:7.0.2 redis-server /etc/redis/redis.conf
查看主從信息info replication
進入主redis容器,輸入docker exec -it *id* redis-cli
,auth
后,檢查情況info replication
例如進入主redis容器查看。此時connected_slaves:2
。slave的ip和port應該和它們宣稱replica-announce
的一致。
role查看從節(jié)點
在主redis中set a 123
,在1號和2號從redis里get a
可以看到效果。
哨兵 sentinel
我們會啟動3個新的redis容器,即3個哨兵。這3個哨兵都監(jiān)聽主redis。
哨兵1號
新建一個哨兵1號用的目錄 /home/reids/conf/sentinel1
├── conf │ └── sentinel.conf └── data
先創(chuàng)建conf文件在編輯配置文件 sentinel.conf
port 26379 dir "/tmp" sentinel monitor master001 119.29.224.177 6379 2 sentinel auth-pass master001 123456 sentinel down-after-milliseconds master001 30000 sentinel parallel-syncs master001 1 sentinel failover-timeout master001 180000 sentinel deny-scripts-reconfig yes
-
port 6411
指定的是哨兵容器里自己的端口 -
sentinel monitor
指定了要監(jiān)聽的主master的ip和端口,最后那個2
表示需要2個哨兵投票 -
master001
是我們給主redis起的名字,后面都用這個
啟動1號哨兵
docker run --restart=always -p 16379:16379 --name redis-sentinel --privileged=true \ -v /home/reids/conf/sentinel1/conf:/usr/local/etc/redis/conf/ \ -d redis:7.0.2 redis-sentinel /usr/local/etc/redis/conf/sentinel.conf
進入容器后,可以查看相關信息。redis-cli
需要指定端口-p 26379
root@aa8d208546d1:/data# redis-cli -p 26379 127.0.0.1:26379> sentinel master master001
查看服務器上1號哨兵的 sentinel.conf ,發(fā)現(xiàn)多了一些內(nèi)容,是redis哨兵寫進來的
# Generated by CONFIG REWRITE latency-tracking-info-percentiles 50 99 99.9 user default on nopass ~* &* +@all sentinel myid b43e361ff80b8f9106cb1d4bb59421aa909ac370 sentinel config-epoch master001 0 sentinel leader-epoch master001 0 sentinel current-epoch 0 sentinel known-replica master001 x.x.x.1 6380 sentinel known-replica master001 x.x.x.1 6381
啟動2號哨兵
配置2號的路徑/home/dapp/projects/rustfisher/sentinel2
。
sentinel.conf配置內(nèi)容和前面一樣,啟動時候端口用-p 26380:26379
docker run --restart=always -p 26380:26379 --name redis-sentinel2 --privileged=true \ -v /home/reids/conf/sentinel2/conf:/usr/local/etc/redis/conf/ \ -d redis:7.0.2 redis-sentinel /usr/local/etc/redis/conf/sentinel.conf
啟動3號哨兵
同理,路徑用3號自己的 /home/dapp/projects/rustfisher/sentinel3/conf
啟動時候端口用-p 36380:36379
docker run --restart=always -p 36380:36379 --name redis-sentinel3 --privileged=true \ -v /home/reids/conf/sentinel3/conf:/usr/local/etc/redis/conf/ \ -d redis:7.0.2 redis-sentinel /usr/local/etc/redis/conf/sentinel.conf
查看哨兵情況
進入哨兵redis容器查看情況
[root@VM-12-6-centos conf]# docker exec -it 68e45f0790b0 bash root@5dc0468fb71f:/data# redis-cli -p 26379 127.0.0.1:26379> sentinel master master001
-
num-slaves
表示從redis的數(shù)量 -
num-other-sentinels
表示除自己外的哨兵數(shù)量
哨兵測試
停掉主redis容器
docker stop redis-CNT-MASTER
過一會等選出新的主redis。然后再啟動剛才停掉的容器redis-CNT-MASTER
。查看信息,
docker start redis-CNT-MASTER //進入redis服務端 docker exec -it redis-CNT-MASTER redis-cli //登錄 auth 123456 info Replication
發(fā)現(xiàn)它是role:slave
哨兵常見問題
配置文件映射
指定配置文件sentinel.conf映射到容器內(nèi)時,直接了使用文件映射。 這么做有可能導致哨兵沒有寫入配置文件的權限, 查看log會看到:
WARNING: Sentinel was not able to save the new configuration on disk!!!: Device or resource busy.
解決方法是使用目錄映射。像上面那樣: -v /home/dapp/projects/rustfisher/sentinel2/conf:/usr/local/etc/redis/conf/
哨兵myid
主從與哨兵redis都啟動后,看起來OK了。但stop掉主redis后,哨兵并沒有選出新的主redis。
有一種可能是哨兵改寫的sentinel.conf里使用了相同的myid
。
grep -nr myid sentinel1/conf/sentinel.conf:11:sentinel myid b43e361ff80b8f9106cb1d4bb59421aa909ac370 sentinel2/conf/sentinel.conf:11:sentinel myid e19342addbcdd8d034c1e91ed74ff94a7aec2e2a sentinel3/conf/sentinel.conf:11:sentinel myid d0393d72f69556f2047cf8c84cfa20f4df6ed4ff
解決方法是stop掉那個哨兵,刪掉myid
那行,然后重啟哨兵。它會自動生成新的myid
。
-
安裝:elasticsearch
5.1下載鏡像并運行
docker network create es-net
5.2拉取鏡像
docker pull elasticsearch:7.12.1
5.3啟動鏡像
docker run -d \
--name es \
????-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
????-e "discovery.type=single-node" \
????-v es-data:/usr/share/elasticsearch/data \
????-v es-plugins:/usr/share/elasticsearch/plugins \
????--privileged \
????--network es-net \
????-p 9200:9200 \
????-p 9300:9300 \
elasticsearch:7.12.1
5.4如出現(xiàn)異??刹榭慈萜鳟惓H罩?/h4>
5.4.1查看容器異常日志
docker ps -a?可以查看到剛退出的elasticsearch容器,復制容器id
通過docker logs -f?容器id查看日志,可以看到提示空間不足
jvm分配的內(nèi)存大于系統(tǒng)可用內(nèi)存數(shù),所以沒有足夠的空間分配新空間了
5.4.2使用命令find / -name jvm.options找到jvm.options文件位置
5.4.3通過vim 文件位置命令進入該文件
找到xms參數(shù)位置,將分配空間修改小一些,減小值到系統(tǒng)可用的值,如
-Xms512m
-Xmx512m
有可能報max_map_count [65530] is too low之類的錯誤,需要重置max_map_count大小
如sysctl -w vm.max_map_count=262144
5.4.4查看max_map_count
sysctl -a|grep vm.max_map_count
5.4.5然后重新啟動容器
systemctl restart docker
-
部署kibana
6.1下載kibana
docker pull kibana:7.12.1
6.2部署
docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://你的虛擬機地址:9200?\
--network=es-net \
-p 5601:5601 ?\
kibana:7.12.1
6.3 kibana啟動一般比較慢,需要多等待一會,可以通過命令:
docker logs -f kibana
7.安裝IK分詞器
7.1?進入容器內(nèi)部
docker exec -it es /bin/bash
7.2?在線下載并安裝
./bin/elasticsearch-plugin ?install?https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.1/elasticsearch-analysis-ik-7.12.1.zip
7.3退出
exit
7.4重啟容器
docker restart es
7.5查看數(shù)據(jù)卷目錄
docker volume inspect es-plugins
顯示結果:
[
????{
????????"CreatedAt": "2022-05-06T10:06:34+08:00",
????????"Driver": "local",
????????"Labels": null,
????????"Mountpoint": "/var/lib/docker/volumes/es-plugins/_data",
????????"Name": "es-plugins",
????????"Options": null,
????????"Scope": "local"
????}
]
7.6?解壓縮分詞器安裝包
下載位置:?https://www.aliyundrive.com/s/SzSsbiB5vi2
提取碼:??jl26
7.7上傳到es容器的插件數(shù)據(jù)卷中
也就是`/var/lib/docker/volumes/es-plugins/_data?`:
7.7.重啟容器
docker restart es
查看es日志
docker logs -f es
7.8測試:
IK分詞器包含兩種模式:ik_smart:最少切分?ik_max_word:最細切分
GET /_analyze
{
??"analyzer": "ik_max_word",
??"text": "黑馬程序員學習java太棒了"
}
8.安裝Rabbitmq第一步:
8.1拉取鏡像:docker pull rabbitmq
8.2查看鏡像:docker images
8.3第二步:
創(chuàng)建并啟動RabbitMQ容器:
docker run -id --hostname myrabbit --name rabbitmq1 -p 15672:15672 -p 5672:5672 rabbitmq
8.4第三步:
進入容器交互頁面:docker exec -it rabbitmq1 /bin/bash
8.5第四步:
在進入的容器里面下載插件:rabbitmq-plugins enable rabbitmq_management
8.6打開rabbitmq管理界面。點擊channels,會報如下錯誤:
Stats in management UI are disabled on this node
8.6.1進入rabbitmq容器
docker exec -it 容器ID /bin/bash
8.6.2進入容器后,cd到以下路徑
cd /etc/rabbitmq/conf.d/
8.6.3修改 management_agent.disable_metrics_collector = false
echo management_agent.disable_metrics_collector = false > management_agent.disable_metrics_collector.conf
8.6.4退出容器
exit
8.6.5重啟rabbitmq容器
docker restart 容器ID
在Linux系統(tǒng)中安裝并配置maven詳細教程
1、安裝wget命令
如果需要通過使用wget命令,直接通過網(wǎng)絡下載maven安裝包時,需要在linux系統(tǒng)中安裝wget命令
yum -y install wget
- 下載maven安裝包在/usr/local/下創(chuàng)建一個maven文件:
mkdir /usr/local/maven
切換到安裝目錄,即新建的文件中:
cd /usr/local/maven
下載安裝:wget https://archive.apache.org/dist/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz
#解壓到指定的目錄
tar -zxvf apache-maven-3.8.6-bin.tar.gz
- 事先創(chuàng)建本地鏡像庫:
進入文件夾?cd /usr/local
在其目錄先創(chuàng)建文件夾?mkdir repositories
2.設置本地鏡像庫
在55行
<localRepository>/usr/local/repositories</localRepository>
- 在159行的標簽為</mirrors>前添加如下阿里云鏡像
<mirror>
????<id>alimaven</id>
????<name>aliyun maven</name>
????<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
????<mirrorOf>central</mirrorOf>
</mirror>
#安裝編輯軟件vim
yum install vim
#打開文件
vim ?/etc/profile
#配置環(huán)境變量,
#將下面的內(nèi)容復制到文件,保存?
export MAVEN_HOME=/usr/local/maven/apache-maven-3.8.6
export PATH=${MAVEN_HOME}/bin:${PATH}
#設置好Maven的路徑之后,需要運行下面的命令使其生效
source /etc/profile
4、驗證maven是否安裝成功
mvn -version
9.kafka安裝配置
Kafka對于zookeeper是強依賴,保存kafka相關的節(jié)點數(shù)據(jù),所以安裝Kafka之前必須先安裝zookeeper
Docker安裝zookeeper
9.1.下載鏡像:
docker pull zookeeper:3.4.14
9.2.創(chuàng)建容器
docker run -d?--name?zookeeper -p?2181:2181 zookeeper:3.4.14
9.3.Docker安裝kafka
下載鏡像:
docker pull wurstmeister/kafka:2.12-2.3.1
創(chuàng)建容器
docker run -d?--name?kafka \
--env?KAFKA_ADVERTISED_HOST_NAME=虛擬機地址 \
--env?KAFKA_ZOOKEEPER_CONNECT=虛擬機地址:2181 \
--env?KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://虛擬機地址:9092 \
--env?KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
--env?KAFKA_HEAP_OPTS="-Xmx256M -Xms256M"?\
--net=host wurstmeister/kafka
可視化工具安裝
docker search kafka-manager
拉取并運行可視化工具
docker run -it?-d?--name?kafka-manager -p?9001:9000 -e?ZK_HOSTS="虛擬機ip地址:2181"??sheepkiller/kafka-manager:latest文章來源:http://www.zghlxwxcb.cn/news/detail-771369.html
瀏覽器中訪問 http://127.0.0.1:9001?可以進入到kafka-manager的可視化界面文章來源地址http://www.zghlxwxcb.cn/news/detail-771369.html
到了這里,關于linux安裝搭建配置docker,mysql,nacos,redis哨兵集群,kafka,elasticsearch,kibana,IK分詞器,安裝Rabbitmq,安裝并配置maven的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!