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 ...
随机推荐
- TypeError: render() got an unexpected keyword argument ‘renderer‘
关注公众号"轻松学编程"了解更多 原因 在使用xadmin时,如果是Django2版本以上的会报这个错误.这是由于xadmin中的文件xadmin\views\dashboard. ...
- KVM简介,安装及常见使用详解
KVM简介 KVM(名称来自英语:Kernel-basedVirtual Machine的缩写,即基于内核的虚拟机),是一种用于Linux内核中的虚拟化基础设施,可以将Linux内核转化为一个hype ...
- 【CHOJ】磁力块
题意描述 磁力块 在平面内分布着 \(N\) 个磁力块,同时你的手上也有一块. 你一开始站在给定的坐标上,当磁力块之间满足互相吸引的条件时就可以吸引. 当你拿到新的磁石时你就可以用它来吸引更多的石头, ...
- jetson-reference编译出现的问题记录
问题一: 显示gcc版本过高,需要安装低版本的gcc.g++ sudo apt-get install -y gcc-4.9 sudo apt-get install -y g++-4.9 cd /u ...
- 配置交换机基于接口划分VLAN(接入层设备作为网关)
组网图形 简介 划分VLAN的方式有:基于接口.基于MAC地址.基于IP子网.基于协议.基于策略(MAC地址.IP地址.接口).其中基于接口划分VLAN,是最简单,最常见的划分方式. 基于接口划分VL ...
- Interface(接口分享)第一节
一.接口初探 有时候我们传入的参数可能会包含很多的属性,但是编译器只会检查那些必须的属性是否存在,以及类型是否匹配,而咱们要讲的接口其实就是用来描述下面这个例子里的结构,对于接口传入的数据咱们只关心它 ...
- [开源地址] 放弃Flink,.NET5.0开发CSharpFlink,简要设计、部署及二次开发说明。
github地址:https://github.com/wxzz/CSharpFlinkgitee地址:https://gitee.com/wxzz/CSharpFlink 1 概述及背景 我们有一个 ...
- ceph luminous bluestore热插拔实现
需求描述 在某些测试场景下面,需要满足能够拔盘以后在插入的时候能够自动上线磁盘,这个需求实际在生产中是不建议使用的,原因是插入的磁盘如果本身存在问题,那么拉起的操作可能会破坏了本身集群的稳定性,所以这 ...
- Check Host:实时监控网站或者服务器是否可以访问
如果你拥有一个网站,那么最重要的事情就是要保证它24小时都能够访问.不过国内的虚拟主机服务非常糟糕,经常会出现各种状况,所以我们需要一个软件,可以让我们第一时间知道网站出现了无法访问的情况,从而通知售 ...
- mysql数据库新增、修改、删除字段和修改表名
Mysql 删除,添加或修改表字段 删除 ALTER TABLE testalter_tbl DROP i; 新增 ALTER TABLE testalter_tbl ADD i INT; 指定位置新 ...