docker-运行nacos服务

环境说明

linux系统版本:lsb_release -a

 

 

docker 版本: docker -v

 

 

不同的操作系统以及软件版本,可能会遇到不一样的问题,一定要注意版本问题。

 

最好是确认自己的服务器已经设置阿里云的镜像加速,或者使用腾讯的,网易的都是可以的。

自己选,设置之后下载镜像的速度回快很多。

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'

{

  "registry-mirrors": ["https://registry-vpc.cn-hangzhou.aliyuncs.com"]

}

EOF

 

 

.1.拉取nacos 的docker镜像文件。

自己本地使用的nacos版本为1.4.2

 

 

服务器上同样使用一样的版本。先创建文件夹。

 

 

不写版本号则默认拉取最新版本

docker pull nacos/nacos-server:1.4.2

 

下载的时候稍微有些慢

 

 

 

.2.准备配置文件。

从本地的nacos中复制一份配置文件,然后在服务器上创建一个配置文件即可。

 

 

然后修改一些关键配置即可,改为自己服务器上对应的配置即可。

 

 

.3.连接mysql远程服务器,导入nacos对应的表数据。

创建数据库。

 

 

导入nacos对应的mysql表和数据信息。

 

 

 

.4.启动nacos容器服务。

docker run --name=nacos -e MODE=standalone -p 7213:8848 -v /opt/u01/exam/nacos/application.properties:/home/nacos/conf/application.properties -v /opt/u01/exam/nacos/logs:/home/nacos/logs -d 938169b118c7

参数解释:

docker run 表示启动容器服务

--name=nacos 表示给容器服务起一个名字

-e MODE=standalone 表示nacos的启动方式为独立启动

-p 7213:8848 表示将宿主机上的端口7213映射到容器中nacos上的端口

-v /opt/u01/exam/nacos/application.properties:/home/nacos/conf/application.properties 表示挂载nacos的配置文件路径

-v /opt/u01/exam/nacos/logs:/home/nacos/logs 表示挂载nacos的日志路径

-d 表示以守护进程地模式启动docker

938169b118c7 表示nacos的镜像ID

 

 

nacos服务启动后,感觉服务器的内存都要爆了,哈哈。

 

.5.页面访问测试。

 

 

添加跟路径,仍然无法访问

 

 

.5.问题排查。

使用telnet 命令 测试端口是否已经打开,发现没有打开。

 

 

查看服务器上已经打开端口

 

 

自己尝试着设置使用nginx来转发访问nacos服务,这样就可以不用开多个端口。

 

 

 

结果发现还是异常,

 

 

查看ngxin日志,还报了一个奇怪的错误如下,

recv() failed (104: Connection reset by peer) while reading response header from upstream,

 

查看服务器日志,发现nacos服务已经正常启动,启动的是一个http服务。

 

 

看到这里时发现问题,自己使用docker命令启动的端口是7213映射到8848,而nacos启动的是7213端口,

是在nacos配置文件中设置的因此出现错误。需要将nacos容器的端口设置为8848才行。

 

 

重新启动nacos容器服务,发现服务能够正常运行。

 

 

默认用户名和密码都是nacos,登录之后记得修改密码。

 

 

.6.配置nacos

首先需要创建nacos的命名空间。

 

 

命名空间的名称和本地配置的命名空间名称需要一致。

 

 

下面的本地bootstrap.properties的配置。

 

 

其次导入本地的配置。

 

 

示例如下

 

 

最后修改配置文件中的各种连接配置即可,比如mysql配置,redis配置等等。

 

 

到此,使用docker运行nacos服务的操作全部完成。

 

遇到的问题:

使用docker启动nacos后,占用的服务内存非常大,只启动一个nacos服务占用的内存如下,

 

 

停止nacos后,占用的内存如下,因此可以推算出nacos服务占用的内存大致为600M左右。

 

 

因此在启动服务的时候,可以设置启动nacos服务的内存大小。

docker run --name=nacos -e JVM_XMS=256m -e JVM_XMX=256m -e MODE=standalone -p 7213:8848 -v /opt/u01/exam/nacos/application.properties:/home/nacos/conf/application.properties -v /opt/u01/exam/nacos/logs:/home/nacos/logs   -d 938169b118c7

-e JVM_XMS=256m 表示jvm启动时分配的内存;-e JVM_XMX=256m 表示jvm运行过程中分配的最大内存

参考博文

https://www.cnblogs.com/niunafei/p/12803965.html

https://1password.com/zh-cn/password-generator/

https://blog.csdn.net/heyu996/article/details/132366586

posted @ 2024-04-06 23:30  一只爱阅读的程序员  阅读(108)  评论(0编辑  收藏  举报