docker容器单机部署nacos
·
一、关于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
运行结果如下:
然后就可以根据端口进行访问
更多推荐
所有评论(0)