一、关于Nacos

是 Dynamic Naming and Configuration Service的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。

Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施,同时可以做配置中心和服务注册中心。

二、docker部署Nacos
1.环境准备

先打开docker,并创建目录

systemctl start docker    #开启docker

mkdir -p mysql/{conf,data,script}    #创建相关目录
2.编辑配置文件

在mysql/conf目录下编辑配置my.cnf文件,编辑如下:

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
skip-host-cache
skip-name-resolve
skip-grant-tables
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
secure-file-priv=/var/lib/mysql-files
user=mysql

# Disabling symbolic-links is recommeded to prevent assorted security risks
symbolic-links=0

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

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
# default: sql_mode= STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
# modeified:
sql_mode= STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_UESR,NO_ENGINE_SUBSTITUTION
max_allowed_packet=10M
default-time_zone='+8:00'
default_authentication_plugin=mysql_native_password
3.创建容器

配置完成后保存退出,然乎开始创建容器,命令如下:

docker run --name m1 -v /root/mysql/conf/my.cnf:/etc/my.cnf -v /root/mysql/data:/var/lib/mysql -v /root/mysql/script:/script --privileged=true -e MYSQL_ROOT_PASSWORD=123456 -d mysql/mysql-server:5.7

创建后查看:

docker images    #查看容器是否创建成功
docker ps -a     #查看容器启动情况
docker run -d -p 3306:3306 --name mysql mysql/mysql-server:5.7    #启动容器,并将端口映射到宿主机

使用docker ps -a 查看容器情况之后,可以看到容器id,

docker start imageid      #启动容器

进入容器:

docker exec -it imageid /bin/bash
 4.数据主备

先登录到MySQL,命令如下:

mysql -uroot -p

密码就是在前面设置的密码,如果在这一步报错,就在容器中下载vim,然后去修改my.cnf文件,跳过密码验证部分。

 进入MySQL之后,创建相关数据库,如下:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

mysql> create database nacos;
Query OK, 1 row affected (0.02 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| nacos              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

mysql> use nacos;
Database changed

接下来:

source  /script/nacos-mysql.sql;   #执行指定路径中的脚本

show tables;
grant all on *.* to root@'%' identified by '123456';

完成之后重启MySQL

5.拉取nacos镜像

拉取镜像:

[root@VM-8-2-centos conf]# docker pull nacos/nacos-server

拉取镜像成功,如图所示:

 

 docker images可以查看你拉取的镜像

查看MySQL容器详细信息:

 找到对应的IP地址,后面用的到

6.开发访问端口

执行以下命令:

firewall-cmd --zone=public --add-port=8848/tcp --permanent #开放端口
firewall-cmd --reload     #更新防火墙端口

 7.配置启动

创建并且运行nacos,并且配置端口映射,具体配置如下:

docker run -itd \
-e PREFER_HOST_MODE=ip \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=172.17.0.3 \       #这里的IP地址根据自己的来
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=123456 \
-p 8848:8848 \
--name nacos \
nacos/nacos-server

完成后,查看容器是否运行成功:

docker logs nacos

运行结果如下:

 然后就可以根据端口进行访问

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐