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