Docker启动安装nacos(详情讲解,全网最细)

前言

  • 安装之前你需要准备一个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/
docker cp nacos:/home/nacos/conf/ /mydata/nacos/

关闭容器

复制代码
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=always
nacos/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

语句讲解

  1. docker run -d : 启动容器 -d是后台启动并返回容器id的意思
  2. --name nacos :为容器指定一个名称
  3. -p 8848:8848 -p 9848:9848 -p 9849:9849 : 指定端口映射,注意这里的p不能大写,大写是随机端口映射
  4. --privileged=true : 扩大容器内的权限,将容器内的权限变为root权限,不加的话就是普通用户权限,可能会出现cannot open directory
  5. -e JVM_XMS=256m : 为jvm启动时分配的内存
  6. -e JVM_XMX=256m : 为jvm运行过程中分配的最大内存
  7. -e MODE=standalone : 使用 standalone模式(单机模式),MODE值有cluster(集群)模式/standalone模式两种,MODE必须大写
  8. -v /mydata/nacos/logs/:/home/nacos/logs : 将容器的/home/nacos/logs目录挂载到 /mydata/nacos/logs
  9. -v /mydata/nacos/conf/:/home/nacos/conf/: 将容器的/home/nacos/conf目录挂载到 /mydata/nacos/conf
  10. --restart=always :重启docker时,自动启动相关容器

注意事项

  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

  • PS:这里有点小问题,重启完防火墙之后,需要重启docker

    重启docker

    systemctl restart docker

  1. 这里最容易犯错的就是挂载目录对应不上,可以看下自己语句中的-v 后面的目录是否映射正确,博主第一次安装的时候logs里面还有一个logs文件夹,conf里面还有个conf文件夹,导致出错

6、修改配置文件

  • 主要修改的是application.properties文件

    在宿主机中修改application.properties文件

    vim /mydata/nacos/conf/application.properties

  • 文件修改的地方(修改为你对应的mysql)

    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

  • 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
相关推荐
大江东第一深情19 分钟前
Origin 2024 进行语言切换后仍然显示为英文
运维·前端
CSDN官方博客31 分钟前
CSDN社区镜像创作活动
大数据·运维·人工智能
石小千43 分钟前
Ubuntu24.04 安装Docker
运维·docker·容器
zhuzewennamoamtf1 小时前
Linux设备树理解和应用
linux·运维·服务器
雨大王5121 小时前
汽车厂内物流如何通过自动化实现降本增效?
运维·自动化
Qzkj6661 小时前
医疗和教育行业自动化、精准匹配、易掌握的数据分类分级最佳实践与案例
大数据·运维·自动化
我科绝伦(Huanhuan Zhou)1 小时前
Linux 环境下 SQL Server 自动收缩日志作业创建脚本(Shell 版)
linux·运维·数据库·sql server
徐徐图之!1 小时前
五、【阶段一运维基础 之 干货!!!】安装 Vmware 和 CentOS
linux·运维·centos
石小千1 小时前
OpenProject服务的备份与恢复
运维
scriptsboy1 小时前
Halo Docker 迁移方法
运维·docker·容器