docker中間件部署

1.docker安裝

# 1.卸載舊版本
yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine# 2.需要的安裝包
yum install -y yum-utils# 3.設置鏡像的倉庫
# 3.1.默認是國外的,不推薦
yum-config-manager \ --add-repo \ 	https://download.docker.com/linux/centos/docker-ce.repo
# 3.2.推薦使用國內的	(這里手敲代碼然后復制網站)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo    # 4.更新yum軟件包索引 
yum makecache fast# 5.安裝docker docker-ce 社區版 ee 是企業版
yum install docker-ce docker-ce-cli containerd.io# 6、啟動docker
systemctl start docker# 7、使用 docker version 查看是否安裝成功
docker version

2. 環境安裝

mysql
docker run \
--name mysql2 \
-d \
-p 330:3306 \
--restart unless-stopped \
-v /home/mysql/log:/var/log/mysql \
-v /home/mysql/data:/var/lib/mysql \
-v /home/mysql/conf/my.cnf:/etc/mysql/my.cnf \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=asd123123 mysql:5.7.38docker run \-p 3306:3306 \--restart unless-stopped \-e MYSQL_ROOT_PASSWORD=aejkgixgds245safafg \-v /home/data/mysql/data:/var/lib/mysql:rw \-v /usr/local/mysql:/etc/mysql/conf.d \--privileged=true \--name mysqlname \--restart=always \-d mysql:8.0 --lower_case_table_names=1
redis
docker run --restart=always --log-opt max-size=100m --log-opt max-file=2 -p 6379:6379 --name myredis -v /data/middleware/redis/myredis.conf:/etc/redis/redis.conf -v /data/middleware/redis/data:/data -d  redis:5.0 /etc/redis/redis.conf  --appendonly yes  --requirepass fdshgjethr154@
nacos
docker run  -d -p 8848:8848 -p 9848:9848 --restart always  -e MODE=standalone  -v/data/middleware/nacos/application.properties:/data/middleware/nacos/conf/application.properties -v /data/middleware/nacos/logs:/home/nacos/logs \nacos/nacos-server:v2.2.3

注意:正確的開啟鑒權做法是怎樣呢?
1.回到第四步運行最終Nacos容器開啟的那個容器,進入Nacos容器內部

docker exec -it nacos bash

2.修改conf下面的配置文件

cd conf
vim application.properties

如圖所示:修改三行,新增2行。
新增的兩行:

##新增兩行
nacos.core.auth.enabled=true
nacos.core.auth.enable.userAgentAuthWhite=false

修改的三行

nacos.core.auth.plugin.nacos.token.secret.key=${NACOS_AUTH_TOKEN:SecretKey01234567890123456789012345345678999987654901234567890123456789}
nacos.core.auth.server.identity.key=${NACOS_AUTH_IDENTITY_KEY:admin}
nacos.core.auth.server.identity.value=${NACOS_AUTH_IDENTITY_VALUE:admin}
或者
nacos.core.auth.plugin.nacos.token.secret.key=01234567890123456789012345345678999987654901234567890123456789
nacos.core.auth.server.identity.key=nacos
nacos.core.auth.server.identity.value=nacos
nginx
# 生成容器
docker run --name nginx -p 9001:80 -d nginx
# 將容器nginx.conf文件復制到宿主機
docker cp nginx:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf
# 將容器conf.d文件夾下內容復制到宿主機
docker cp nginx:/etc/nginx/conf.d /home/nginx/conf/conf.d
# 將容器中的html文件夾復制到宿主機
docker cp nginx:/usr/share/nginx/html /home/nginx/# 直接執行docker rm nginx或者以容器id方式關閉容器
# 找到nginx對應的容器id
docker ps -a
# 關閉該容器
docker stop nginx
# 刪除該容器
docker rm nginx# 刪除正在運行的nginx容器
docker rm -f nginxdocker run \
--name ng \
-p 80:80 \
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /home/nginx/log:/var/log/nginx \
-v /home/nginx/html:/usr/share/nginx/html \
-d nginx:latest注意:得先存在conf.d和nginx.conf
docker run   \--name ng \-p 80:80 -p 443:443  \--restart unless-stopped  \-v /data/middleware/nginx/conf.d:/etc/nginx/conf.d   \-v /data/middleware/nginx/nginx.conf:/etc/nginx/nginx.conf  \-v /data/app/web:/app nginx:latest
neo4j
docker run -d \
--name neo4j_main \
-p 7474:7474 \
-p 7687:7687 \
-v /home/neo4j/data:/data \
-v /home/neo4j/logs:/logs \
-v /home/neo4j/conf:/var/lib/neo4j/conf \
-v /home/neo4j/import:/var/lib/neo4j/import \
--env NEO4J_AUTH=neo4j/123456 \
neo4j:3.5.22-community
es
安裝es
chmod 777 /home/es/es-data/nodes

1.拉取鏡像

sudo docker pull elasticsearch:7.12.1

2.創建網絡

docker network create es-net

3.運行

docker run -d \
--name es \
-e "ES_JAVA_OPTS=-Xms216m -Xmx216m" \
-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
-e "cluster.name=es-docker-cluster":設置集群名稱-e "http.host=0.0.0.0":監聽的地址,可以外網訪問-e "ES_JAVA_OPTS=-Xms512m -Xmx512m":內存大小-e "discovery.type=single-node":非集群模式-v es-data:/usr/share/elasticsearch/data:掛載邏輯卷,綁定es的數據目錄-v es-logs:/usr/share/elasticsearch/logs:掛載邏輯卷,綁定es的日志目錄-v es-plugins:/usr/share/elasticsearch/plugins:掛載邏輯卷,綁定es的插件目錄--privileged:授予邏輯卷訪問權--network es-net :加入一個名為es-net的網絡中-p 9200:9200:端口映射配置
安裝kibana
sudo docker pull kibana:7.12.1
docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
--network=es-net \
-p 5601:5601 \
kibana:7.12.1
命令講解:--network es-net :加入一個名為es-net的網絡中,與elasticsearch在同一個網絡中
-e ELASTICSEARCH_HOSTS=http://es:9200":設置elasticsearch的地址,因為kibana已經與elasticsearch在一個網絡,因此可以用容器名直接訪問elasticsearch
-p 5601:5601:端口映射配置
安裝ik分詞器

IK分詞器包含兩種模式:
●ik_ smart:最少切分
●ik
max_ _word:最細切分

# 進入容器內部
docker exec -it elasticsearch /bin/bash# 在線下載并安裝
./bin/elasticsearch-plugin  install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.1/elasticsearch-analysis-ik-7.12.1.zip#退出
exit
#重啟容器
docker restart elasticsearch
mogodb
--restart=always \
--name mongo \
-e MONGO_INITDB_ROOT_USERNAME=root  \
-e MONGO_INITDB_ROOT_PASSWORD=asd123  \
-v /home/mongo/data:/data/db \
-v /home/mongo/conf:/data/configdb \
-v /home/mongo/logs:/data/log \
-v /home/mongo/tmp:/tmp  \
-p 2017:27017 \
mongo:latest 
minio
docker run --privileged=true -d -it \
-p 9111:9111 -p 9000:9000 \
--name minio-a11   \
-v /opt/minio/data:/data \
-v /opt/minio/config:/root/.minio \
-e "MINIO_ROOT_USER=minio" \
-e "MINIO_ROOT_PASSWORD=minio123etge"   \
minio/minio server /data \
--console-address ":9111" 
jenkins
docker run -d --restart=always --name jenkins -uroot -p 8080:8080 -p 50000:50000 -v /home/docker/jenkins:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker jenkins/jenkins:lts
rabbitmq
docker run -d --name rabbitmq01 \
-p 5672:5672 -p 15672:15672 \
-v /app/rabbitmq:/var/lib/rabbitmq --hostname localhost \
-e RABBITMQ_DEFAULT_VHOST=localhost  \
-e RABBITMQ_DEFAULT_USER=root \
-e RABBITMQ_DEFAULT_PASS=root \
-v /etc/localtime:/etc/localtime:ro \
rabbitmq:3.8-management

docker-compose安裝環境

compose安裝

curl -SL https://github.com/docker/compose/releases/download/v2.16.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version
如果遇到容器權限問題
sudo chown -R 1001:1001 /data/kafka-data
version: '3'
networks:mynet:ipam:#  driver: bridgeconfig:- subnet: 162.18.0.0/16
services:mysql: # 服務名稱image: mysql:8.0.18 # 或其它mysql版本container_name: mysql8 # 容器名稱environment:- MYSQL_ROOT_PASSWORD=123456 # root用戶密碼- TZ=Asia/Shanghai # 設置容器時區 我這里通過下面掛載方式同步的宿主機時區和時間了,這里忽略volumes:- /data/middleware/mysql8/log:/var/log/mysql # 映射日志目錄,宿主機:容器- /data/middleware/mysql8/data:/var/lib/mysql # 映射數據目錄,宿主機:容器- /data/middleware/mysql8/conf.d:/etc/mysql/conf.d # 映射配置目錄,宿主機:容器。ports:- 3306:3306 # 指定宿主機端口與容器端口映射關系,宿主機:容器restart: always # 容器隨docker啟動自啟networks:- mynetredis:image: redis:latestcontainer_name: redisrestart: alwaysports:- '6379:6379'volumes:- /data/middleware/redis/data:/data- /data/middleware/redis/redis.conf:/usr/local/etc/redis/redis.conf- /data/middleware/redis/logs:/logs#配置文件啟動command: redis-server /usr/local/etc/redis/redis.confnetworks:- mynetminio:image: minio/miniohostname: "minio"ports:- 9000:9000 # api 端口- 9001:9001 # 控制臺端口environment:MINIO_ACCESS_KEY: admin    #管理后臺用戶名MINIO_SECRET_KEY: admin123 #管理后臺密碼,最小8個字符volumes:- /data/middleware/minio/data:/data               #映射當前目錄下的data目錄至容器內/data目錄- /data/middleware/minio/config:/root/.minio/     #映射配置目錄command: server --console-address ':9001' /data  #指定容器中的目錄 /dataprivileged: truerestart: alwaysnetworks:- mynetnacos:image: nacos/nacos-server:2.0.3container_name: nacosenvironment:MODE: standaloneMYSQL_SERVICE_HOST: hostnameMYSQL_SERVICE_DB_NAME: nacosMYSQL_SERVICE_USER: nacosMYSQL_SERVICE_PASSWORD: nacosports:- "8848:8848"volumes:- /data/middleware/nacos/init.d/custom.properties:/home/nacos/init.d/custom.propertiesrestart: alwaysnetworks:- mynetrabbitmq:image: "rabbitmq:3.13.6-management"restart: alwaysprivileged: trueports:- "35672:5672"     # RabbitMQ standard port- "45672:15672"    # RabbitMQ management plugin portcontainer_name: rabbitmqhostname: rabbitmqenvironment:- RABBITMQ_ERLANG_COOKIE=secret_cookie    # Set a custom Erlang cookie for clustering- RABBITMQ_DEFAULT_USER=admin             # Set RabbitMQ admin user- RABBITMQ_DEFAULT_PASS=_admin123         # Set RabbitMQ admin passwordnetworks:- mynetvolumes:- /data/middleware/rabbitmq/storage:/var/lib/rabbitmqpostgres:image: postgres:13.1healthcheck:test: [ "CMD", "pg_isready", "-q", "-d", "postgres", "-U", "root" ]timeout: 45sinterval: 10sretries: 10restart: alwaysenvironment:- POSTGRES_USER=root- POSTGRES_PASSWORD=password- APP_DB_USER=docker- APP_DB_PASS=docker- APP_DB_NAME=dockervolumes:- /data/middleware/pg/db:/docker-entrypoint-initdb.d/ports:- 5432:5432networks:- mynetmongodb:image: mongo:4.4container_name: mongodbrestart: alwaysenvironment:- TZ=Asia/Shanghai- MONGO_INITDB_DATABASE=demo- MONGO_INITDB_ROOT_USERNAME=demo- MONGO_INITDB_ROOT_PASSWORD=demo2023ports:- "6383:27017"volumes:- /data/middleware/mongodb/data:/data/db- /data/middleware/mongodb/logs:/data/logs- /data/middleware/mongodb/config:/data/configdbnetworks:- mynetjenkins:# 這里的版本號,使用從官網上查看的最新 LTS 版本號image: jenkins/jenkins:2.440.1container_name: jenkinsprivileged: truerestart: alwaysports:# web訪問端口- "8066:8080"# 基于JNLP的Jenkins代理端口- "50000:50000"volumes:# jenkins的數據和配置文件目錄映射- /data/middleware/jenkins/data:/var/jenkins_home# 將外部的jdk目錄映射到容器內部- /data/middleware/jenkins/jdk:/app/jdk# 將外部的maven目錄映射到容器內部- /data/middleware/jenkins/maven:/app/mavennetworks:- mynetnginx:image: nginx:1.23-alpinecontainer_name: production_nginxports:- "80:80"- "443:443"volumes:- /data/middleware/nginx/config/nginx.conf:/etc/nginx/nginx.conf:ro- /data/middleware/nginx/config/conf.d:/etc/nginx/conf.d- /data/middleware/nginx/html:/usr/share/nginx/html- /data/middleware/nginx/logs:/var/log/nginx# - ./certs:/etc/ssl/certsenvironment:- TZ=Asia/Shanghai- NGINX_ENVSUBST_OUTPUT_DIR=/etc/nginx/conf.dnetworks:- mynetzookeeper:image: docker.io/bitnami/zookeeper:3.8container_name: zookeeper_1ports:- "2181:2181"volumes:- /data/middleware/zookeeper_1:/bitnami/zookeeper #持久化數據environment:- TZ=Asia/Shanghai- ALLOW_ANONYMOUS_LOGIN=yesnetworks:- mynetkafka:restart: alwaysimage: docker.io/bitnami/kafka:3.4container_name: kafka_1ports:- "9004:9004"volumes:- /data/middleware/kafka_1:/bitnami/kafka #持久化數據environment: - TZ=Asia/Shanghai - KAFKA_BROKER_ID=1 - KAFKA_CFG_LISTENERS=PLAINTEXT://:9004- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.1.42:9004 #替換成你自己的IP- KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181 - ALLOW_PLAINTEXT_LISTENER=yes depends_on: - zookeepernetworks:- mynet

redis.conf

port 6379
bind 0.0.0.0
requirepass xj2023
daemonize no
loglevel notice
logfile ""
databases 16
appendonly no
save 900 1
save 300 10
save 60 10000

nginx.conf


user  nginx;
worker_processes  auto;error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;events {worker_connections  1024;
}http {include       /etc/nginx/mime.types;default_type  application/octet-stream;log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log  /var/log/nginx/access.log  main;sendfile        on;#tcp_nopush     on;keepalive_timeout  65;#gzip  on;include /etc/nginx/conf.d/*.conf;
}

detault.conf

server {listen       80;listen  [::]:80;server_name  localhost;#access_log  /var/log/nginx/host.access.log  main;location / {root   /usr/share/nginx/html;index  index.html index.htm;}#error_page  404              /404.html;# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;location = /50x.html {root   /usr/share/nginx/html;}# proxy the PHP scripts to Apache listening on 127.0.0.1:80##location ~ \.php$ {#    proxy_pass   http://127.0.0.1;#}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000##location ~ \.php$ {#    root           html;#    fastcgi_pass   127.0.0.1:9000;#    fastcgi_index  index.php;#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;#    include        fastcgi_params;#}# deny access to .htaccess files, if Apache's document root# concurs with nginx's one##location ~ /\.ht {#    deny  all;#}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/73611.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/73611.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/73611.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python康復日記-request庫的使用,爬蟲自動化測試

一,request的簡單應用 #1請求地址 URLhttps://example.com/login #2參數表單 form_data {username: admin,password: secret } #3返回的響應對象response response requests.post(URL,dataform_data,timeout5 ) #4處理返回結果,這里直接打印返回網頁的…

強化學習和智能決策:Q-Learning和Deep Q-Learning算法

強化學習(Reinforcement Learning, RL)是機器學習的一個重要分支,它通過智能體(Agent)與環境交互來學習最優決策策略,旨在最大化智能體的長期累積獎勵。Q-Learning和Deep Q-Learning是強化學習中的兩種關鍵算法,它們在智能決策領域發揮著重要作用。 一、強化學習基礎 …

ubuntu22.04 安裝Jitsi meet 開源會議系統,代替騰訊會議

0.安裝 官方安裝教程Self-Hosting Guide - Debian/Ubuntu server | Jitsi Meet 一定要用域名訪問, 一定要用域名訪問, 一定要用域名訪問, 一定要用域名訪問, 域名一定要有ssl證書,域名一定要有ssl證書,域名…

專家管理系統(源碼+文檔+講解+演示)

引言 在知識經濟時代,專家管理系統成為了企業優化知識資源、提升決策效率的重要工具。本文將介紹一款創新的專家管理系統,該系統通過智能化工具,助力企業實現專家資源的高效管理和利用。 平臺概述 專家管理系統采用前后端分離的架構設計&a…

css基礎-選擇器

選擇器進階 子串選擇器 /* 匹配 href 以 "https" 開頭的鏈接 */ a[href^"https"] {color: green; }/* 匹配 href 包含 "example" 的鏈接 */ a[href*"example"] {text-decoration: underline; }/* 匹配 href 以 ".pdf" 結尾…

Spring Boot屬性設置方法及優先級完整說明+表格對比

Spring Boot屬性設置方法及優先級完整說明 官網參考: https://docs.spring.io/spring-boot/3.4-SNAPSHOT/reference/features/external-config.html#features.external-config.files 屬性設置方法優先級順序(從高到低) 命令行參數&#xf…

上門家政小程序實戰,從0到1解決方案

一、邏輯分析 上門家政小程序主要涉及用戶端和服務端兩大部分。用戶端需要實現服務瀏覽、預約下單、訂單跟蹤等功能;服務端則要處理訂單管理、服務人員管理、數據統計等任務。以下是詳細的功能模塊分析: 用戶注冊與登錄:用戶通過手機號或第三…

LLVM學習-DragonEgg工具

2.2.2 使用DragonEgg和LLVM工具了解編譯流程 如果希望看到前端的運行情況,請使用-S -fplugin-arg-dragonegg-emit-ir標志,該標志將產生以LLVM IR代碼表示的人工可讀文件。 一旦編譯器將程序轉換為IR則停止編譯,并將內存中的表示內容寫入磁盤的…

關于cmd中出現無法識別某某指令的問題

今天來解決以下這個比較常見的問題,安裝各種軟件都可能會發生,一般是安裝時沒勾選注冊環境變量,導致cmd無法識別該指令。例如mysql,git等,一般初學者可能不太清楚。 解決這類問題最主要的是了解環境變量的概念&#x…

ThreadLocal詳解與高頻場景實戰指南

ThreadLocal詳解與高頻場景實戰指南 1. ThreadLocal概述 ThreadLocal是Java提供的線程本地變量機制,用于實現線程級別的數據隔離。每個訪問該變量的線程都會獲得獨立的變量副本,適用于需要避免線程間共享數據的場景。 特點: 線程封閉性&a…

【C++初階】---類和對象(上)

1.類的定義 1.1類的定義格式 ? class為定義類的關鍵字,Data為類的名字,{}中為類的主體,注意類定義結束時后?分號不能省略。類體中內容稱為類的成員:類中的變量稱為類的屬性或成員變量;類中的函數稱為類的?法或者成員函數。 ?…

Rust安裝并配置配置vscode編譯器

一. 下載rustup-init.exe rust下載網址:Getting started - Rust Programming Language 根據系統,選擇適合的exe文件 我選擇的的是右邊64bit的 打開下載的文件 輸入1,回車 二. Visual C 安裝 自動下載安裝vs 等待安裝完畢 三. Rust 安裝…

openGl片段著色器的含義

片段著色器的含義及代碼中的應用說明: 1. 片段著色器的基本概念 片段著色器(Fragment Shader)是OpenGL著色器管線中的關鍵組件,主要用于計算屏幕空間中每個片段(對應像素)的最終顏色。它是圖形渲染流程的…

事務的四大特性(ACID)詳解

事務的四大特性(ACID)詳解 在數據庫管理系統(如 MySQL)中,事務(Transaction) 是指一組要么全部執行、要么全部不執行的數據庫操作,通常用于確保數據的完整性和一致性。事務有四大核…

ubuntu設置開機自動運行應用

系統版本:Ubuntu 24.04.1 LTS桌面版 按招網上的資料顯示,當前版本主要的實現方式有以下兩種, 方式1:通過圖形界面的【啟動應用程序】設置開機自啟動;方式2:配置為服務實現開機自啟動。 但是在我的電腦上方…

ECharts各類炫酷圖表/3D柱形圖

一、前言 最近雞米花實現了各類的炫酷的圖表,有3D柱形圖、雙邊柱形圖以及異形柱形圖,好了,直接上圖: 二、效果圖 一個個來吧,下面就是代碼啦,注意,一下圖表展示的寬高均為800px*300px 三、異形橫…

機器人原點丟失后找回原點的解決方案與步驟

機器人原點丟失后找回原點的解決方案與步驟 在機器人運行過程中,原點丟失可能導致定位錯誤、運動失控等問題,常見于機械臂、AGV(自動導引車)、3D打印機等設備。以下是針對原點丟失問題的系統性解決方案及詳細步驟,涵蓋…

HCIP——園區網、VLAN

園區網 園區網搭建核心思路:冗余(備份)--- 保證其健壯性 1、設備冗余 2、線路冗余 3、網關冗余 4、ups(不間斷電源)冗余—— 能不斷電(物理層) 三層交換機和路由器的選擇: 三層交換…

虛擬機(二):Android 篇

虛擬機(一):Java 篇 虛擬機(二):Android 篇 Dalvik和JVM區別 Dalvik 基于寄存器,而 JVM 基于棧。 基于棧的架構具有更好的可移植性,因為其實現不依賴于物理寄存器基于棧的架構通常指…

Android Token的原理和本地安全存儲

Android Token的原理和本地安全存儲 前言 在移動應用開發中,Token是實現用戶身份驗證和授權的重要機制。本文將深入介紹Token的原理,以及在Android平臺上如何安全地存儲Token,幫助開發者構建可靠的身份驗證系統。 基礎知識 1. Token概述 1.1 Token的作用 身份驗證授權訪…