前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker启动安装nacos

Docker启动安装nacos

原创
作者头像
用户9524924
修改2023-11-21 16:27:18
4720
修改2023-11-21 16:27:18
举报
文章被收录于专栏:mydockermydocker

前言

  • 安装之前你需要准备一个mysql,当前安装方式是将数据持久化到数据库中的,这里的部署是单机模式

1、Docker 拉取镜像

代码语言:javascript
复制
[root@VM-28-2-centos ~]# docker pull nacos/nacos-server:v2.2.3
  • PS:如果需要拉取别的版本可以加:版本号(如:docker pull nacos/nacos-server:v2.2.0)

2、挂载目录

代码语言:javascript
复制
[root@VM-28-2-centos docker]# mkdir -p /opt/docker/nacos/logs/
[root@VM-28-2-centos docker]# mkdir -p /opt/docker/nacos/conf/

  • PS:这一步是添加映射文件夹,将宿主机的文件映射到nacos容器中

3、启动nacos并复制文件到宿主机,关闭容器

启动容器

代码语言:javascript
复制
docker run -p 8848:8848 --name nacos -d nacos/nacos-server:v2.2.3

复制文件

代码语言:javascript
复制
docker cp nacos:/home/nacos/logs/ /opt/docker/nacos/
docker cp nacos:/home/nacos/conf/ /opt/docker/nacos/

关闭容器

代码语言:javascript
复制
docker rm -f nacos
  • PS:这一步启动nacos是为了将nacos里面的文件拷贝出到挂载目录中,这样我们就可以直接修改挂载目录中文件来映射到容器里面去了

4、mysql中创建nacos所需的表

  • mysql中新建一个库,名字可自定义,这里就用nacos-config
  • github中找到创建表的文件,在nacos-config库中执行,创建所需的表

5、再次启动nacos

代码语言:javascript
复制
docker run -d
--name nacos
--network=mynet --ip=192.168.0.2                                                             
-p 8848:8848  -p 9848:9848 -p 9849:9849
--privileged=true
-e JVM_XMS=256m
-e JVM_XMX=256m
-e MODE=standalone
-v /opt/docker/nacos/logs/:/home/nacos/logs
-v /opt/docker/nacos/conf/:/home/nacos/conf/
--restart=always
nacos/nacos-server:v2.2.3
  • PS : 复制上面的语句执行失败,可以将上面的执行语句变成一行,如下,可直接复制执行
代码语言:javascript
复制
docker run -d --name nacos --network=mynet --ip=192.168.0.2 -p 8848:8848  -p 9848:9848 -p 9849:9849 --privileged=true -e JVM_XMS=256m -e JVM_XMX=256m -e MODE=standalone -v /opt/docker/nacos/logs/:/home/nacos/logs -v /opt/docker/nacos/conf/:/home/nacos/conf/ --restart=always nacos/nacos-server:v2.2.3

语句讲解

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时,自动启动相关容器

注意事项

  1. 需要在防火墙开放相关端口,如果你是云服务器,开放安全组,下面提供相关语句
代码语言:javascript
复制
## 开放端口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
代码语言:javascript
复制
## 重启docker
systemctl restart docker

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

5.1把nacos和mysql添加进本地网络

代码语言:javascript
复制
docker network connect mynet nacos\mysql

6、修改配置文件

  • 主要修改的是application.properties文件
代码语言:javascript
复制
## 在宿主机中修改application.properties文件
vim /mydata/nacos/conf/application.properties
  • 文件修改的地方(修改为你对应的mysql)
代码语言:javascript
复制
spring.sql.init.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.0=root
db.password.0=root
  • PS :因为我们在第三步已经复制了logs和conf到了我们的宿主机里面,那么我们可以直接修改application.properties文件映射到容器里,可以通过下面的语句来查看
代码语言:javascript
复制
## 进入到nacos容器里
docker exec -it nacos /bin/bash

## 查看application.properties文件
cat /home/nacos/conf/application.properties

## 退出容器
exit
  • PS:如果文件没有修改成功的话,说明挂载目录映射的不对,仔细查看一下,可以通过下面的方法来查看是否正确
代码语言:javascript
复制
docker inspect --format="{{json .Mounts}}" nacos

7、访问页面

代码语言:javascript
复制
http://ip:8848/nacos/index.html

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 1、Docker 拉取镜像
  • 2、挂载目录
  • 3、启动nacos并复制文件到宿主机,关闭容器
    • 启动容器
      • 复制文件
        • 关闭容器
        • 4、mysql中创建nacos所需的表
        • 5、再次启动nacos
          • 注意事项
          • 5.1把nacos和mysql添加进本地网络
          • 6、修改配置文件
          • 7、访问页面
          相关产品与服务
          容器镜像服务
          容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档