1、拉取nacos,坑
-
拉取nacos
docker pull nacos/nacos-server:v2.2.1
-
此时如果无法拉取,报错,大概率报错原因是 time out 超时
-
错误信息:
-
Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
-
-
先ping baidu.com 查看是否能正常上网,如果能正常上网,那按照以下内容修改就可以了
-
找到可用的源,有时候能找一整天都未必能找到可用的
-
进到 vi /etc/docker/daemon.json 修改成以下源,只能保证暂时可用,不保证永久使用
{ "registry-mirrors": [ "https://do.nark.eu.org", "https://dc.j8.work", "https://docker.m.daocloud.io", "https://dockerproxy.com", "https://docker.mirrors.ustc.edu.cn", "https://docker.nju.edu.cn" ] } // 记得每次修改完daemon.json 必须执行下面两个命令来重启docker systemctl daemon-reload systemctl restart docker
-
保存后即可正常拉取,如果不行,报错time out超时错误,就要找到新的源尝试
-
2、启动nacos,坑
-
成功拉取nacos后以为问题就此结束,谁知还有坑等着
-
运行nacos后无法访问nacos页面,被拒绝
-
查看docker ps 发现nacos 有被运行,但是再去日志查看下发现报错
-
docker logs -f nacos
-
ERROR Nacos failed to start, please see /home/nacos/logs/nacos.log for more details
-
先删除之前不可用的容器(如果使用了挂载application.properties方案的可以直接修改挂载文件,无需删除容器 )
-
docker rm -f nacos
-
原因:因为2.X版本以后nacos需要鉴权,所以缺少了3条命令
-
坑1:很多文章说更改NACOS_AUTH_TOKEN 大于32位就行了,以前可以,现在不行了,我大概算了下,大于50位才可以
-
坑2:很多文章只提及了坑1,但是没有下面两条命令也是不行的,key和value的值随便自己写
-e NACOS_AUTH_IDENTITY_KEY=nacostest \
-e NACOS_AUTH_IDENTITY_VALUE=nacostest \
-
-
整理一下,执行下面命令就可以正常运行了
docker run -d -p 8848:8848 -p 9848:9848 -p 9849:9849 \ --privileged=true \ --restart=always \ -e MODE=standalone \ -e JVM_XMS=256m \ -e JVM_XMX=256m \ -e NACOS_AUTH_TOKEN=hkuhjgfsefvcghynmjuhfgtgkijuhyfcvxdasdfasdfwefzxcvea \ -e NACOS_AUTH_IDENTITY_KEY=nacostest \ -e NACOS_AUTH_IDENTITY_VALUE=nacostest \ --name nacos nacos/nacos-server:v2.2.1
-
最后,有些好文章说可以修改挂载application.properties文件,也是可以的,可能nacos后期做了些改动,缺少了坑2的两条命令,添加进去就可以了