Docker启动安装nacos(详情讲解,全网最细)
短信预约 -IT技能 免费直播动态提醒
前言
- 安装之前你需要准备一个mysql,当前安装方式是将数据持久化到数据库中的,这里的部署是单机模式
1、Docker 拉取镜像
docker pull nacos/nacos-server
- PS:这是拉取最新的nacos版本,如果需要拉取别的版本可以加:版本号(如:docker pull nacos/nacos-server:v2.2.0)
2、挂载目录
mkdir -p /mydata/nacos/logs/ #新建logs目录mkdir -p /mydata/nacos/conf/#新建conf目录
- PS:这一步是添加映射文件夹,将宿主机的文件映射到nacos容器中
3、启动nacos并复制文件到宿主机,关闭容器
启动容器
docker run -p 8848:8848 --name nacos -d nacos/nacos-server
复制文件
docker cp nacos:/home/nacos/logs/ /mydata/nacos/logs/docker cp nacos:/home/nacos/conf/ /mydata/nacos/conf/
关闭容器
docker rm -f nacos
- PS:这一步启动nacos是为了将nacos里面的文件拷贝出到挂载目录中,这样我们就可以直接修改挂载目录中文件来映射到容器里面去了
4、mysql中创建nacos所需的表
- mysql中新建一个库,名字可自定义,这里就用nacos-config
- 从github中找到创建表的文件,在nacos-config库中执行,创建所需的表
5、再次启动nacos
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=alwaysnacos/nacos-server
- PS : 复制上面的语句执行失败,可以将上面的执行语句变成一行,如下,可直接复制执行
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
语句讲解
- docker run -d : 启动容器 -d是后台启动并返回容器id的意思
- –name nacos :为容器指定一个名称
- -p 8848:8848 -p 9848:9848 -p 9849:9849 : 指定端口映射,注意这里的p不能大写,大写是随机端口映射
- –privileged=true : 扩大容器内的权限,将容器内的权限变为root权限,不加的话就是普通用户权限,可能会出现cannot open directory
- -e JVM_XMS=256m : 为jvm启动时分配的内存
- -e JVM_XMX=256m : 为jvm运行过程中分配的最大内存
- -e MODE=standalone : 使用 standalone模式(单机模式),MODE值有cluster(集群)模式/standalone模式两种,MODE必须大写
- -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时,自动启动相关容器
注意事项
- 需要在防火墙开放相关端口,如果你是云服务器,开放安全组,下面提供相关语句
## 开放端口8848 9848 9849firewall-cmd --zone=public --add-port=8848/tcp --permanentfirewall-cmd --zone=public --add-port=9848/tcp --permanentfirewall-cmd --zone=public --add-port=9849/tcp --permanent## 重启防火墙firewall-cmd --reload## 查看所有开启的端口firewall-cmd --zone=public --list-ports
- PS:这里有点小问题,重启完防火墙之后,需要重启docker
## 重启dockersystemctl restart docker
- 这里最容易犯错的就是挂载目录对应不上,可以看下自己语句中的-v 后面的目录是否映射正确,博主第一次安装的时候logs里面还有一个logs文件夹,conf里面还有个conf文件夹,导致出错
6、修改配置文件
- 主要修改的是application.properties文件
## 在宿主机中修改application.properties文件vim /mydata/nacos/conf/application.properties
- 文件修改的地方(修改为你对应的mysql)
spring.datasource.platform=mysqldb.num=1db.url.0=jdbc:mysql://localhost:3306/nacos-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=30000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTCdb.user=rootdb.password=root
- PS :因为我们在第三步已经复制了logs和conf到了我们的宿主机里面,那么我们可以直接修改application.properties文件映射到容器里,可以通过下面的语句来查看
## 进入到nacos容器里docker exec -it nacos /bin/bash## 查看application.properties文件cat /home/nacos/conf/application.properties## 退出容器exit
- PS:如果文件没有修改成功的话,说明挂载目录映射的不对,仔细查看一下,可以通过下面的方法来查看是否正确
docker inspect --format="{{json .Mounts}}" nacos
7、访问页面
http://ip:8848/nacos/index.html
8、最后
- 有什么问题留言,我会回复的
来源地址:https://blog.csdn.net/ilvjiale/article/details/129417768
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341