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.38
docker 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 nginx
docker 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