Docker 安装nacos

Docker 拉取nacos镜像

这里以2.1.1版本为例
docker pull nacos/nacos-server:v2.1.1
如果不加版本就是拉取最新版本
docker pull nacos/nacos-server

挂载目录

mkdir -p /mydata/nacos/logs/   #新建logs目录
mkdir -p /mydata/nacos/conf/   #新建conf目录

启动nacos并复制文件到宿主机,移除容器

docker run -p 8848:8848 --name nacos -d nacos/nacos-server

复制默认的logs文件和配置文件,便于之后挂载,及修改挂载目录中文件来映射到容器中

docker cp nacos:/home/nacos/logs/ /mydata/nacos/logs/
docker cp nacos:/home/nacos/conf/ /mydata/nacos/conf/

移除容器

docker rm -f nacos

如果不使用nacos默认的数据库,进行nacos持久化,需要修改配置文件,改连接mysql数据库

vim /mydata/nacos/conf/application.properties

  • 文件修改信息如下
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://localhost:3306/nacos-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=30000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC #可以改成自己对应使用的数据库信息
db.user=root
db.password=root

创建配置文件中连接的数据库,这里示例的默认用户名:nacos, 密码:123456 (详情可看Nacos2 + Mysql8 作为数据源的建表语句

nacos初始化mysql, 首先要先创建数据库,然后执行nacos 官网上的sql,创建对应的表
https://github.com/alibaba/nacos/blob/master/config/src/main/resources/META-INF/nacos-db.sql

我这里使用的是mysql8.0.27版本,如果nacos连接mysql8以上版本,需要在nacos里添加mysql-connector-java.jar文件

下载地址:https://downloads.mysql.com/archives/c-j/

下载完毕后,把jar文件放置到nacos容器中以下路径
mkdir /home/nacos/plugins/mysql

再次启动nacos

docker run -d                            #将容器的/home/nacos/conf目录挂载到 /mydata/nacos/conf
--name nacos                             #将容器的/home/nacos/conf目录挂载到 /mydata/nacos/conf
-p 8848:8848 -p 9848:9848 -p 9849:9849   #Nacos2.0增加了9848,9849端口来进行GRPC通信
--privileged=true                        #扩大容器内的权限,将容器内的权限变为root权限,不加的话就是普通用户权限,可能会出现cannot open directory
-e MODE =standalone                      #使用 standalone模式(单机模式),MODE值有cluster(集群)模式/standalone模式两种,MODE必须大写
-e JVM_XMS=256m                          #为jvm启动时分配的内存,可加或者不加
-e JVM_XMX=256m                          #为jvm运行过程中分配的最大内存,可加或者不加
-v /mydata/nacos/logs/:/home/nacos/logs  #将容器的/home/nacos/logs目录挂载到 /mydata/nacos/logs
-v /mydata/nacos/conf/:/home/nacos/conf/ #将容器的/home/nacos/conf目录挂载到 /mydata/nacos/conf
--restart=always                         #重启docker时,自动启动相关容器
nacos/nacos-server:v2.1.1                
  • 可直接复制以下语句
docker run -d --name nacos -p 8848:8848  -p 9848:9848 -p 9849:9849 --privileged=true -e JVM_XMS=256m -e JVM_XMX=256m -e MODE=standalone -v /mydata/nacos/logs/:/home/nacos/logs -v /mydata/nacos/conf/:/home/nacos/conf/ --restart=always nacos/nacos-server:v2.1.1

注意事项

需要在防火墙开发相关端口,如果是云服务器,开发安全组,以下是相关语句

## 开放端口8848 9848 9849
firewall-cmd --zone=public --add-port=8848/tcp --permanent
firewall-cmd --zone=public --add-port=9848/tcp --permanent
firewall-cmd --zone=public --add-port=9849/tcp --permanent

## 重启防火墙
firewall-cmd --reload

## 查看所有开启的端口
firewall-cmd --zone=public --list-ports

## 重启完防火墙后,重启docker
systemctl restart docker

访问nacos:
http://hostname:8848/nacos

posted @ 2023-08-15 11:22  希望能摸鱼的凛耶酱  阅读(542)  评论(0)    收藏  举报