1. 拉取nacos-server镜像
进入 Docker Hub 查看nacos-server最新版本为 nacos-server:1.4.0
配置阿里云镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://g6jp4cfd.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
拉取最新版本镜像(1.4.0)
docker pull nacos/nacos-server
2. 创建数据库
MySQL创建数据库名为nacos_config并导入官方脚本
nacos-db.sql
3. 创建挂载
在宿主机创建日志目录和配置文件
mkdir -p /home/nacos/logs
mkdir -p /home/nacos/init.d
vim /home/nacos/init.d/custom.properties
4. 创建和启动容器
docker run -d --name nacos --restart=always --net=host \
-e MODE=standalone \
-e JVM_XMS=256m \
-e JVM_XMX=256m \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST= 101.37.69.49 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=123456 \
-e MYSQL_DATABASE_NUM=1 \
-v /home/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties \
-v /home/nacos/logs:/home/nacos/logs \
nacos/nacos-server
具体配置参数请参考 Nacos官方文档
如果启动容器失败,请在宿主机目录 /home/nacos/logs
查看日志。
到这里就完成了nacos-server应用的部署了,可以通过链接进入到Nacos控制台。
注意:
--net=host 指定Docker容器的网络模式为Host和宿主机在同一个网络,而不是默认的Bridge桥接模式,所以不指定端口的映射 -p 8848:8848。
至于为什么没有使用Bridge网络模式,中间是有些插曲的,先申明下我使用的云服务器是UCloud家的。
最开始使用的Bridge模式,创建和启动容器之后,然后关闭了内外网防火墙,访问Nacos控制台准备截图时。
原以为,实指望,谁料想,怎奈何。这十二个字,写尽了所有我的悲伤。
啊,我怎么访问不到~
在我的电脑telnet端口8848同样没反应,内网防火墙完全关闭的,自然就想着甩锅到UCloud上,配置的外网防火墙的开放端口没有生效吧。然后快到半夜给UCloud提交了个工单~这里不得不说UCloud技术售后是真的好,这个点提交不到一分钟就给回复了。
得到的结果就是UCloud云服务器不支持tcp6的监听(也就是不支持ipv6)。而使用Bridge模式启动的容器默认只开启了tcp6的监听,所以就导致无法访问应用的问题。
所以就想办法看能不能开启容器的tcp4监听咯,其实搜索下docker、tcp6、监听无法访问 等关键词会发现很多类似的问题,系统是Centos 8.0,试用了好几个方案都不可行。不知道配置才能使Docker容器开启tcp4的监听,所以也在这里问一下各位童鞋,麻烦知道的告知一下。
最后没辙,只能选择Host模式来避开docker-proxy映射的端口监听默认是tcp6的问题。
以下是使用 --net = host
设置网络为Host模式的端口监听信息
4. Nacos应用测试
访问: http://106.75.231.227:8848/nacos
用户名/密码: nacos/nacos
5. 总结
youlai-mall (Spring Cloud +Spring Cloud Alibaba + Vue 前后端分离一套商城项目) 暂处于开发阶段,并没有部署到线上,大家只能在本地搭建看到效果,其实挺不方便的,所以准备在云服务器部署一套环境。但没成想,一件很容易的事情居然耽误了那么久的时间,仅仅是因为UCloud云服务器不支持tcp6的监听,但是另外几台阿里云的服务器不会在使用Docker的过程中有这样的问题。所以写了这篇文章希望能帮助到各位童鞋少走点弯路。
最后附上项目往期系列文章,对项目有兴趣的小伙伴欢迎随时联系我(微信号:haoxianrui)~
附:往期文章链接
后端
- Spring Cloud实战 | 第一篇:Windows搭建Nacos服务
- Spring Cloud实战 | 第二篇:Spring Cloud整合Nacos实现注册中心
- Spring Cloud实战 | 第三篇:Spring Cloud整合Nacos实现配置中心
- Spring Cloud实战 | 第四篇:Spring Cloud整合Gateway实现API网关
- Spring Cloud实战 | 第五篇:Spring Cloud整合OpenFeign实现微服务之间的调用
- Spring Cloud实战 | 第六篇:Spring Cloud Gateway+Spring Security OAuth2+JWT实现微服务统一认证授权
- Spring Cloud实战 | 最七篇:Spring Cloud Gateway+Spring Security OAuth2集成统一认证授权平台下实现注销使JWT失效方案
- Spring Cloud实战 | 最八篇:Spring Cloud +Spring Security OAuth2+ Vue前后端分离模式下无感知刷新实现JWT续期
- Spring Cloud实战 | 最九篇:Spring Security OAuth2认证服务器统一认证自定义异常处理
管理前端
- vue-element-admin实战 | 第一篇: 移除mock接入后台,搭建有来商城youlai-mall前后端分离管理平台
- vue-element-admin实战 | 第二篇: 最小改动接入后台实现根据权限动态加载菜单
微信小程序