docker安装nacos,单例模式(standalone),使用mysql数据库

文章目录

前言

此处有本人写得简易版本安装,如果不考虑使用mysql可以直接用内置的derby数据库,传送门:docker部署nacos,单例模式(standalone),使用内置的derby数据库,简易安装

安装

创建文件夹

shell 复制代码
mkdir -p /home/docker_home/nacos/nacos-data/{conf,logs,data}

"假装"安装一下nacos

为什么说要假装安装一下,因为这里很多人都被坑了,首先我们要理清我们的安装思路,nacos后期版本的docker安装,是要先让nacos在不设置太多参数的情况下,直接docker run,让其生成相应的conf文件,然后把这些文件从镜像中拷贝出来,然后再进行全新的带配置的docker安装,这样才能安装出可由你配置的nacos,就是很奇怪,你如果设置了任意一个环境参数,似乎nacos在构建的时候就会优先去找配置文件,这个时候就引起了一系列的找不到文件的异常报错。

shell 复制代码
docker run -p 8848:8848 --name nacos -d nacos/nacos-server

拷贝文件夹

在经过上面"假装"安装后,生成了一些默认配置,我们现在需要做的就是将这些默认配置从镜像中拷贝出来,然后重新安装容器

shell 复制代码
docker cp nacos:/home/nacos/logs /home/docker_home/nacos/nacos-data
docker cp nacos:/home/nacos/conf /home/docker_home/nacos/nacos-data
docker cp nacos:/home/nacos/data /home/docker_home/nacos/nacos-data
  • 注意!拷贝的时候/home/docker_home/nacos/nacos-data/不要再加conf,这样会创建成/home/docker_home/nacos/nacos-data/conf/conf

删除"假装"安装的nacos容器

shell 复制代码
docker rm -f nacos

生成nacos所需的mysql表

获取mysql-schema.sql文件

去到/home/docker_home/nacos/nacos-data/conf目录下,你能找到"mysql-schema.sql",这就是nacos依赖mysql所需要的表,不是很智能,还是只能自己多动动手了

创建一个mysql的schema

可以命名为nacos

右击,点击"运行SQL文件"

点击"...",然后选择刚才下载的mysql-schema.sql

开始,即可生成所有mysql表

重新生成新的nacos容器

shell 复制代码
docker run -d \
-p 8848:8848 \
--name nacos \
--env MODE=standalone \
--env JVM_XMS=256m \
--env JVM_XMX=256m \
--env SPRING_DATASOURCE_PLATFORM=mysql \
--env MYSQL_SERVICE_HOST=127.0.0.1 \
--env MYSQL_SERVICE_PORT=3306 \
--env MYSQL_SERVICE_USER=your_username \
--env MYSQL_SERVICE_PASSWORD=your_password \
--env MYSQL_SERVICE_DB_NAME=nacos \
-v /home/docker_home/nacos/nacos-data/conf:/home/nacos/conf \
-v /home/docker_home/nacos/nacos-data/logs:/home/nacos/logs \
-v /home/docker_home/nacos/nacos-data/data:/home/nacos/data \
nacos/nacos-server
  • 如果出现cannot open directory的情况,可以添加一个参数,--privileged=true,它的主要作用扩大容器内的权限,将容器内的权限变为root权限,不加的话就是普通用户权限,但同时也会有安全性的问题,请自行考虑,我是没有开启的

制作docker-compose.yaml文件

version: '3.7'

services:

nacos:

image: nacos/nacos-server

container_name: nacos

environment:

  • MODE=standalone

  • JVM_XMS=256m

  • JVM_XMX=256m

  • SPRING_DATASOURCE_PLATFORM=mysql

  • MYSQL_SERVICE_HOST=127.0.0.1

  • MYSQL_SERVICE_PORT=3306

  • MYSQL_SERVICE_USER=your_username

  • MYSQL_SERVICE_PASSWORD=your_password

  • MYSQL_SERVICE_DB_NAME=nacos

volumes:

  • /home/docker_home/nacos/nacos-data/conf:/home/nacos/conf

  • /home/docker_home/nacos/nacos-data/logs:/home/nacos/logs

  • /home/docker_home/nacos/nacos-data/data:/home/nacos/data

ports:

  • "8848:8848"

restart: always

查看网站

在浏览器中访问: http://127.0.0.1:8848/nacos
默认用户名和密码都是:nacos
记得修改

过来你配置的mysql数据库查看,你设置的内容已经存储在数据库了,自此实现了docker安装nacos,依赖mysql数据库的方式

相关推荐
知识分享小能手4 分钟前
MongoDB入门学习教程,从入门到精通,MongoDB入门指南 —— 知识点详解(2)
数据库·学习·mongodb
black方块cxy5 分钟前
实现一个输入框多个ip以逗号分隔最多20组,且ip不能重复
java·服务器·前端
what_201831 分钟前
PostgreSQL 索引
数据库·postgresql
麦聪聊数据36 分钟前
跨云与多区服游戏架构下的数据库运维:基于webSQL的访问实践
数据库·sql·低代码·游戏·restful
eggwyw1 小时前
MySQL 与 Redis 的数据一致性问题
数据库·redis·mysql
23.1 小时前
【Java】char字符类型的UTF-16编码解析
java·开发语言·面试
怒放吧德德1 小时前
Spring Boot实战:InfluxDB 2.x简单教程
java·spring boot·后端
indexsunny1 小时前
互联网大厂Java面试实战:核心技术与业务场景深度解析
java·spring boot·hibernate·security·microservices·interview
2401_879693871 小时前
使用Python控制Arduino或树莓派
jvm·数据库·python
是小蟹呀^1 小时前
Java中的继承:从入门到精通
java·继承