结合实践总结Docker安装Nacos

一、前言

    在SpringCloud中注册中心、配置中心都需要专门去写一定量的以及一些配置,配置信息多了就不方便去维护管理,于是阿里的Nacos 解决这些问题就提供了该一站式解决方案。Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

    在实际开发,基于SpringCloudAlibaba框架开发的日常工作中,作为程序工程师,你得会进行基本的安装以及问题的解决。好了下面就开始进行安装的内容。

二、Docker安装Nacos

1、在虚拟机VMware创建新的虚拟机并安装CentOS7,平时可以练习

这一步可以看看笔者的另一篇博文在虚拟机VMware安装CentOS7

2、在CentOS7安装Docker

这一步可以看看笔者的另一篇博文CentOS安装Docker

3、在Docker安装MySQL7

这一步可以看看笔者的另一篇博文结合实践总结docker 安装 mysql5.7

4、导入执行nacos-mysql.sql脚本

一些配置的数据都是在里面的

https://github.com/alibaba/nacos/blob/master/distribution/conf/nacos-mysql.sql

如果直接下载nacos的,那么脚本就在这个conf目录下面:

结合实践总结Docker安装Nacos_第1张图片

5、创建Nacos的配置、数据和日志存放目录

# 创建 nacos 配置存放目录
mkdir -p /home/docker/nacos/conf  && chown -R 200 /home/docker/nacos/conf


# 创建 nacos 数据存放目录
mkdir -p /home/docker/nacos/data  && chown -R 200 /home/docker/nacos/data

# 创建 nacos 日志存放目录
mkdir -p /home/docker/nacos/logs  && chown -R 200 /home/docker/nacos/logs


conf:这个是Nacos配置文件的存放目录,Nacos是用Java写的,到时候我们得在里面将一些配置改成我们自己的

conf文件夹下可能有如下文件:

结合实践总结Docker安装Nacos_第2张图片 

application.properties配置文件是不是很熟悉,是的就是我们经常见到的SpringBoot等的配置文件

data:就是Nacos存放我们配置的数据的,如下面这些等等:

结合实践总结Docker安装Nacos_第3张图片

 

logs:就是Nacos的执行日志。

结合实践总结Docker安装Nacos_第4张图片

 

6、docker pull nacos/nacos-server:1.3.1拉取镜像,如下即成功

结合实践总结Docker安装Nacos_第5张图片

不放心的话可执行docker images命令检查是否拉取成功

结合实践总结Docker安装Nacos_第6张图片

7、创建启动容器

docker  run \
--name nacos -d \
-p 8888:8848 \
--privileged=true \
--restart=always \
-e JVM_XMS=256m \
-e JVM_XMX=256m \
-e MODE=standalone \
-e PREFER_HOST_MODE=hostname \
nacos/nacos-server:1.3.1

nacos的默认端口是8848,默认账号密码是nacos/nacos

8888是映射的端口,这个可以自己定义,访问的时候我们会用到它。

创建启动容器参数如下:

名称 描述
MODE  cluster模式/standalone模式  cluster/standalone default cluster
NACOS_SERVERS nacos cluster地址  nacos cluster地址    eg. ip1,ip2,ip3
PREFER_HOST_MODE  是否支持hostname   hostname/ip default ip
NACOS_SERVER_PORT nacos服务器端口    default 8848
NACOS_SERVER_IP    多网卡下的自定义nacos服务器IP   多网卡下的自定义nacos服务器IP  
SPRING_DATASOURCE_PLATFORM  standalone 支持 mysql     mysql / empty default empty
MYSQL_SERVICE_HOST    mysql 的host  
MYSQL_SERVICE_PORT mysql 的端口
MYSQL_SERVICE_DB_NAME mysql 的数据库名称
MYSQL_SERVICE_USER mysql 的账号
MYSQL_SERVICE_PASSWORD mysql 的密码
MYSQL_MASTER_SERVICE_HOST   
MYSQL_MASTER_SERVICE_PORT  mysql 主节点端口  default : 3306
MYSQL_MASTER_SERVICE_DB_NAME 
MYSQL_MASTER_SERVICE_USER
MYSQL_MASTER_SERVICE_PASSWORD 
MYSQL_SLAVE_SERVICE_HOST  mysql从节点host  
MYSQL_SLAVE_SERVICE_PORT 
MYSQL_DATABASE_NUM 数据库数量   default :2
JVM_XMS -Xms default :2g
JVM_XMX -Xmx default :2g

如下就是创建启动成功了,注意状态为UP

结合实践总结Docker安装Nacos_第7张图片

7、本地访问http://192.168.88.140:8888/nacos如下就是成功了

192.168.88.140是我的主机地址,你改成自己的

8888就是上面说的创建容器时映射的端口

登录时默认账号密码:nacos/nacos

结合实践总结Docker安装Nacos_第8张图片

8、进入nacos的容器内,修改conf/application.properties的内容:

8.1、docker exec -it 容器ID /bin/bash,执行该命令进入容器

8.2、ll或ls,执行该命令可查看nacos下有哪些文件夹

8.3、cd conf,执行该命令进入配置文件夹

8.4、ls,执行该命令查看有哪些文件

8.5、vi application.properties,执行该命令进入编辑文件

结合实践总结Docker安装Nacos_第9张图片

8.6、按i进入编辑状态 

结合实践总结Docker安装Nacos_第10张图片

8.7、按Esc退出编辑状态,按":"冒号,后输入wq,及“:wq”回车退出编辑文件

结合实践总结Docker安装Nacos_第11张图片

 

本地开发例子:将db.url.0的主机地址改成你自己的,数据库名称也是你自己的,在第4步中自己创建的。

#*************** Spring Boot Related Configurations ***************#
### Default web context path:
server.servlet.contextPath=/nacos
### Default web server port:
server.port=8848

#*************** Network Related Configurations ***************#
### If prefer hostname over ip for Nacos server addresses in cluster.conf:
# nacos.inetutils.prefer-hostname-over-ip=false

### Specify local server's IP:
# nacos.inetutils.ip-address=


#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
# spring.datasource.platform=mysql

### Count of DB:
# db.num=1

### Connect URL of DB:
# db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
# db.user.0=nacos
# db.password.0=nacos

db.num=1
db.url.0=jdbc:mysql://localhost:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=123456

### Connection pool configuration: hikariCP
db.pool.config.connectionTimeout=30000
db.pool.config.validationTimeout=10000
db.pool.config.maximumPoolSize=20
db.pool.config.minimumIdle=2

你可能感兴趣的:(Docker,docker)