Linux下使用Docker部署nacos-server(单机模式),丧心病狂的我在半夜给UCloud提交了一份工单
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实战 | 第二篇: 最小改动接入后台实现根据权限动态加载菜单
微信小程序
Linux下使用Docker部署nacos-server(单机模式),丧心病狂的我在半夜给UCloud提交了一份工单的更多相关文章
- Linux下使用JDK11部署Nacos启动报错:Could not find or load main class
Linux下使用JDK11部署Nacos 错误日志 /nacos/jdk-11.0.12/bin/java -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize ...
- Linux下用Docker部署接口安全的运行环境
背景:MySQL数据库运行在宿主机上(Linux) 需求:Redis.服务.页面分别运行在独立的docker中,并处于同一网络,容器内部重要目录要挂载在物理目录,保证数据安全 方法: 一.设置网络环境 ...
- Linux下基于Docker部署.Net Core web api项目
Docker的好处我就不说啦,问问度娘就知道了
- 在linux下用tomcat部署java web项目的过程与注意事项
在linux下用tomcat部署java web项目的过程与注意事项 一.安装JDK 到http://www.oracle.com/technetwork/java/javase/downloads/ ...
- 阿里云Linux CentOS 7 Docker部署使用gogs搭建自己的git服务器
一.前言 Git是目前优秀和流行的源代码管理工具.而GitHub是一个面向开源及私有软件项目的托管云平台,但开源免费,私有收费.而公司出于商业化等目的需要搭建自己的源代码托管服务器.通过网上了解Gog ...
- 在linux下用tomcat部署java web项目的过程与注意事项(转)
在linux下用tomcat部署java web项目的过程与注意事项一.安装JDK到http://www.oracle.com/technetwork/java/javase/downloads/in ...
- CentOS下利用Docker部署Surging
原文:CentOS下利用Docker部署Surging 1. 安装Centos, 配置固定ip配置文件地址vi /etc/sysconfig/network-scripts/ifcfg-ens33`` ...
- 在Kali linux下使用docker配置sqli-labs(国内源的配置和系统软件更新)
本篇blog导航: ~前言 ~第一步:在安装好的kali配置国内源 ~第二步:安装docker ~第三步:docker下安装sqli-labs ~写在最后. 前言: 最近闲来无事,在闯关sqli-la ...
- Linux下编译安装Apache Http Server
Linux下编译安装Apache Http Server [TOC] 1.下载httpd-2.4.12.tar.bz2 wget http://mirror.bit.edu.cn/apache/htt ...
随机推荐
- PLC模拟量采集模块分辨率是什么意思?
14位分辨率的模块(mo kuai)和16位分辨率的模块有什么不同的地方? 14位的模块最高位是符号位,我们用S表示符号位,那么这个模块的数值范围(fàn wéi)就是S111 1111 1111 1 ...
- DP百题练索引
就是一篇还在咕的文章 DP百题练(一) DP百题练(二) DP百题练(三)
- 如何使用捷映App制作朋友圈九宫格视频图片合集
在刷朋友圈的过程中,看到九宫格的视频图片合集,带有酷炫的音效和动效,展现效果非常好,那么我们该如何制作呢?下面我为大家介绍. 第一步,我们需要在各大应用市场搜索[捷映视频制作]App,点击[安装]. ...
- 【Luogu】P6232 [eJOI2019]挂架 题解
这道题跟CSP/S 2019 D1T1有点像. 我们先来模拟一下 \(n=4\) 的情况, 不难得出,最后的衣架挂钩顺序: 下标: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 ...
- Java进阶专题(十六) 数据结构与算法的应用(上)
前言 学习算法,我们不需要死记硬背那些冗长复杂的背景知识.底层原理.指令语法--需要做的是领悟算法思想.理解算法对内存空间和性能的影响,以及开动脑筋去寻求解决问题的最佳方案.相比编程领域的其他技术 ...
- pc端兼容IE9及以上版本
最近业务部门反映我们商城的兼容性不是很好,尤其是在IE浏览器上,经过调研,我们决定对IE9及以上版本的IE内核浏览器进行主流程测试,发现有哪些功能在IE9上不兼容 一.CSS兼容性 如下图所示 使用了 ...
- springboot mybatis保存数据中文保存成???
springboot mybatis保存数据中文保存成??? 解决方法: 数据库存连接配置后面加characterEncoding=UTF-8 如下例: spring.datasource.url=j ...
- Linux踩坑之云服务器 ssh 连接不上
前奏:今天没事处理一下之前远程不了Linux桌面的问题时,找到一个解决方法(开始入坑): systemctl set-default graphical.tar ...
- JsonPath在接口自动化中的应用
我理解jsonpath于json而言,就像是xpath在XML中的作用.用来确定json中某部分数据的语言.我更喜欢叫jsonpath表达式,因为这样好像是数学问题. 以前和小伙伴一起写接口自动化的时 ...
- 【Java从入门到精通】day08-包机制-JavaDoc生成文档
1.包机制 为了更好地组织类,Java提供了包机制,用于区别类名的命名空间. 包语句的语法格式为: package pkg1[.pkg2[.pkg3...]]; 一般利用公司域名倒置作为包名(如www ...