01、分布式基础&项目环境搭建.pdf

docker虚拟机的使用

1.启动与配置docker

注意:vagrant的用户名:vagrant或者root,密码:vagrant

1.1 双击启动,Oracle VM VirtualBox

在这里插入图片描述

1.2 启动vagrant

在这里插入图片描述

1.3 连接vagrant

cmd 或者xshell

以cmd为例

1).连接vagrant
vagrant ssh
2).登录
用户名、密码为: vagrant
3).切换到root
su root
密码 vagrant

1.4 虚拟机网络配置

1)设置-网络-高级-端口转发,太麻烦
2).修改网卡,麻烦
3).修改 Vagrantfile (可以)

在这里插入图片描述

a.config.vm.network “private_network”, ip: “192.168.56.11” 关闭虚拟机
b. cmd下, vagrant reload,重启
c.vagrant ssh连接虚拟机,
d.ip addr ,验证ip是否修改成功 在这里插入图片描述
e.ping ww.baidu.com ok

1.5 安装docker

Docker 安装文档:

1).卸载系统之前的 docker

sudo yum remove docker \
	docker-client \
	docker-client-latest \
	docker-common \
	docker-latest \
	docker-latest-logrotate \
	docker-logrotate \
	docker-engine

2).安装 Docker-CE

安装必须的依赖
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
设置 docker repo 的 yum 位置
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
安装 docker,以及 docker-cli
sudo yum install docker-ce docker-ce-cli containerd.io

3).启动 docker

sudo systemctl start docker

4).设置 docker 开机自启

sudo systemctl enable docker

5).测试 docker 常用命令,注意切换到 root 用户下
docker命令

如,查看启动的容器(服务),docker ps
   查看镜像,docker images

6).配置 docker 镜像加速

阿里云,容器镜像服务 针对 Docker 客户端版本大于 1.10.0 的用户 您可以通过修改 daemon的 配置文件 /etc/docker/daemon.json 来使用加速器

创建docker目录
.sudo mkdir -p /etc/docker

.配置文件daemon.json
sudo tee /etc/docker/daemon.json <<-'EOF'
{ 
"registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"]
}
EOF

.重启daemon、docker
sudo systemctl daemon-reload
sudo systemctl restart docker

1.6 使用xshell连接docker虚拟机

Vagrant ssh 进去系统之后。启动docker后,配置以下操作,以后直接使用xshell连接docker

vi /etc/ssh/sshd_config
修改 PasswordAuthentication yes/no
重启服务 service sshd restart
 以后可以使用提供的 ssh 连接工具直接连接

2.安装mysql

1).下载镜像文件

docker pull mysql:5.7

2).创建实例并启动

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

参数说明
-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口
-v /mydata/mysql/conf:/etc/mysql:将配置文件夹挂载到主机
-v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
-v /mydata/mysql/data:/var/lib/mysql/:将配置文件夹挂载到主机
-e MYSQL_ROOT_PASSWORD=root:初始化 root

3).MySQL 配置

vi /mydata/mysql/conf/my.cnf

[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

注意:解决 MySQL 连接慢的问题 在配置文件中加入如下,并重启 mysql
[mysqld] skip-name-resolve
解释: skip-name-resolve:跳过域名解析

重启mysql
docker restart mysql

4).通过容器的 mysql 命令行工具连接

docker exec -it mysql mysql -uroot -proot

5).设置 root 远程访问

grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;

flush privileges;

6).进入mysql容器内(文件系统)

docker exec -it mysql /bin/bash

whereis mysql,查看mysql安装路径

7).设置mysql开机自启动

docker update mysql --restart=always

8).使用Navicat等连接mysql数据库

9).如果在第二步,连接Mavicat失败,删除容器、镜像、mysql文件,重启下载镜像、启动mysql

3.安装redis

1).下载镜像文件

docker pull redis

2).创建实例并启动

mkdir -p /mydata/redis/conf

touch /mydata/redis/conf/redis.conf

docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf

redis 自描述文件:

3).配redis持久化机制aof

配/mydata/redis.conf
appendonly yes

4).设置redis开机自启动

docker update redis --restart=always

5).使用 redis 镜像执行 redis-cli 命令连接

docker exec -it redis redis-cli

6).使用 redis 管理器连接redis

在这里插入图片描述

4.安装nacos

安装nacos最新版
Docker安装nacos1.3.1并配置mysql(详细)

第一,保证先安装docker并配置阿里镜像,可参考教程
第二,docker容器安装mysql,可参考教程
第三,上教程

1).安装nacos镜像源

docker安装镜像,可直接在 官网查找镜像
这边是安装nacos版本1.3.1

docker pull nacos/nacos-server:1.3.1

查看docker已安装镜像源命令

docker images

2)、新建nacos挂载目录

mkdir -p /mydata/nacos/logs/   # 新建logs目录
mkdir -p /mydata/nacos/init.d/  
vim /mydata/nacos/init.d/custom.properties # 修改配置文件

要配置mysql,如果是本地,也不能直接127.0.0.1,因为docker容器也有对应的ip,所以得查看一下对应的ip
docker inspect mysql | grep IPAddress #mysql是对应的容器名字
我的ip: 192.168.56.11

docker inspect mysql | grep 192.168.56.11

3).custom.properties 配置文件(或者application.properties)

erver.contextPath=/nacos
server.servlet.contextPath=/nacos
server.port=8848
spring.datasource.platform=mysql

db.num=1
# 这里要对应ip,以及对应的数据库
db.url.0=jdbc:mysql://172.18.0.4:3306/nacos_devtest_prod?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=root

nacos.cmdb.dumpTaskInterval=3600
nacos.cmdb.eventTaskInterval=10
nacos.cmdb.labelTaskInterval=300
nacos.cmdb.loadDataAtStart=false

management.metrics.export.elastic.enabled=false
management.metrics.export.influx.enabled=false
server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i
nacos.security.ignore.urls=/,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/login,/v1/console/health/**,/v1/cs/**,/v1/ns/**,/v1/cmdb/**,/actuator/**,/v1/console/server/**
nacos.naming.distro.taskDispatchThreadCount=1
nacos.naming.distro.taskDispatchPeriod=200
nacos.naming.distro.batchSyncKeyCount=1000
nacos.naming.distro.initDataRatio=0.9
nacos.naming.distro.syncRetryDelay=5000
nacos.naming.data.warmup=true
nacos.naming.expireInstance=true 

4)、运行nacos命令

前提条件做好后,就可以下运行命令

docker  run --name nacos -p 8848:8848   \
--privileged=true \
--restart=always \
-e JVM_XMS=256m \
-e JVM_XMX=256m \
-e MODE=standalone \
-e PREFER_HOST_MODE=hostname \
-v /mydata/nacos/logs:/home/nacos/logs \
-v /mydata/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties \
-d nacos/nacos-server:1.3.1 

然后就可以查看nacos

docker ps

5).nacos开机自启动

docker update nacos/nacos-server --restart=always
也可以把服务名改为容器id

6)、快速安装nacos并配置mysql

参考官方文档,可以通过git命令去快速配置nacos

1、linux安装git

yum -y install git

2、Clone 项目
git clone https://github.com/nacos-group/nacos-docker.git

cd nacos-docker
3、单机模式 Mysql
docker-compose -f example/standalone-mysql.yaml up

5.docker基本操作

1).查看镜像
docker images
2).查看启动的容器(服务,如nginx、redis等)
docker ps
3) 停止服务、重启服务
语法:docker restart 服务名,服务名也可以是容器id前3-4位(container)
docker stop nginx
docker restart nginx
4).设置启动docker后默认启动服务
语法:docker update 服务名–restart=always ,服务名也可以是容器id前3-4位
docker update nginx --restart=always
注意:我的谷粒商城使用docker,使用服务在/的mydata下

6.docker安装nginx

见谷粒商城的124视频

1.查看可以内存

free -m

2.安装nginx

在es的安装,自定义分词器需要安装nginx,把自定义分词放入nginx

 随便启动一个 nginx 实例,只是为了复制出配置
 docker run -p 80:80 --name nginx -d nginx:1.10
 将容器内的配置文件拷贝到当前目录:docker container cp nginx:/etc/nginx .
 别忘了后面的点
 修改文件名称:mv nginx conf 把这个 conf 移动到/mydata/nginx 下
 终止原容器:docker stop nginx
 执行命令删除原容器:docker rm $ContainerId
 创建新的 nginx;执行以下命令 docker run -p 80:80 --name nginx \
-v /mydata/nginx/html:/usr/share/nginx/html
-v /mydata/nginx/logs:/var/log/nginx
-v /mydata/nginx/conf:/etc/nginx \ -d nginx:1.10
 给 nginx 的 html 下面放的所有资源可以直接访问;

1).切换到/mydata/nginx下

cd /
cd mydata/nginx

a. 随便启动一个 nginx 实例,只是为了复制出配置
docker run -p 80:80 --name nginx -d nginx:1.10
b.将容器内的配置文件拷贝到当前目录:

在/madata下执行
docker container cp nginx:/etc/nginx .
别忘了后面的点

c.停止nginx,并删除容器

docker stop nginx
docker rm nginx

d.修改文件名称:

mv nginx conf
创建mydata下创建nginx文件夹
mkdir nginx
把这个 conf 移动到/mydata/nginx 下
cd conf /mydata/nginx
在这里插入图片描述

e.创建新的 nginx

执行以下命令
docker run -p 80:80 --name nginx
-v /mydata/nginx/html:/usr/share/nginx/html
-v /mydata/nginx/logs:/var/log/nginx
-v /mydata/nginx/conf:/etc/nginx
-d nginx:1.10
在这里插入图片描述

f.给nginx写首页

把index.html放入nginx的html下
测试
在这里插入图片描述

g. 给 nginx 的 html 下面放的所有资源可以直接访问

如静态资源等

7. 自定义es的分词

安装es见其文档

1). nginx 添加es的分词

在nginx/html/es下创建fenci.txt,自定义分词
在这里插入图片描述

2). es配置自定义分词

cd /mydata/elasticsearch/plugins/ik/config
编辑IKAnalyzer.cfg.xml
在这里插入图片描述
vi IKAnalyzer.cfg.xml
在这里插入图片描述
http://192.168.56.10/es/fenci.txt

3).重启es,使用kibana测试自定义分词

kibana首页
http://192.168.56.10:5601/
测试自定义分词
在这里插入图片描述
POST _analyze
{
“analyzer”: “ik_max_word”,
“text”: “乔碧萝殿下”
}

4).需要自定义分词,自己添加

添加到nginx/es的fenci.txt即可

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐