背景
由于生产环境需要安装nacos
看了一下教程
有几种方式
方式一
- 装jdk
- 装maven
- 下载nacos 源编译
方式二
用 docker 安装nacos,不论是集群和单集,都很方便
好了,看到这儿,我就不想再往下看,由于以前,一直是用docker,所以看到docker就移不到脚
执行过程
第一步:与专业运维沟通
确保安装docker,对现在环境是否有所影响,没影响,干
第二步:按官方安装教程一路执行下来
具体参考:
Install Docker Engine on CentOS
第三步:添加镜像地址
1.Linux中添加镜像加速
创建或修改/etc/docker/daemon.json文件
默认没有daemon文件,先创建。
vim /etc/docker/daemon.json
添加如下内容:
{
"registry-mirrors": [
"https://ung2thfc.mirror.aliyuncs.com",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
]
}
2.加载重启docker
在终端输入以下命令
systemctl daemon-reload
systemctl restart docker
第四步:安装docker-compose
先按第一种方式安装 :
发现装完之后,不可用,应该有一些必要的工具,没有更新,因为正常都会按这种方式安装
方式二(未采用,由于要更新大量工具)
方式三(最终采用并安装 )
使用pip 安装
sudo pip install docker-compose
docker-compose(旧版)本身也是python写的。
- 测试是否安装成功
在控制台执行
docker-compose -v
输出:docker-compose version 1.29.2
第五步:配置docker-compose.yml
配置单机版本如下:
version: '3'
services:
nacos:
restart: always
image: nacos/nacos-server:v2.1.1
container_name: nacos
ports:
- "8848:8848"
environment:
NACOS_VERSION: 2.1.1
MODE: standalone
第六步:通过compose,启动nacos服务
执行脚本
docker-compose -f docker-compose.yml up -d
// 或者执行简版
docker-compose up -d
nacos 就起来了
第七步:配置外网控制台ngnix
采用最简单方式,配一个2级域名,对8848端口做一个转发
大概就是如果,隐去关键信息,在nginx.conf 里http添加一个子server节点
server {
listen 80;
listen [::]:80;
server_name subdomain.xxxx.com;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
# 这里把中间键按路径做个划分
location ~ /nacos/ {
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8848;
}
}
修复过程
按上步骤,依次还原
最终解决问题
删除docker0 网络
只需执行下面三步就可以了:
yum -y install bridge-utils
ifconfig docker0 down
brctl delbr docker0
修改docker和docker-compose的固定网段 - awks - 博客园 (cnblogs.com)
重新搭环境
梳理之后,重新来过.先修改如下配置
配置docker 网段,参照以下博客
修改docker和docker-compose的固定网段 - awks - 博客园 (cnblogs.com)
docker-compose up使用自定义的网段的两种方式(从其根源指定) - Captain_Li - 博客园 (cnblogs.com)
修改docker默认网段
关键添如下配置
{
"default-address-pools":
[
{"base":"10.10.0.0/16","size":24}
]
}
一开始纠结是用 bip,还是用default-address-pools,后面通过各种博客资料,发现
- bip只能控制docker create/run 这种容器的启动
- default-address-pools docker-compose(docker compose)启动的也能控制
过程中,使用到的一些工具
查看当前设备的虚拟网卡信息
[xxx@xxx ~]$ route -n
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.16.255.253 0.0.0.0 UG 100 0 0 eth0
10.10.0.0 0.0.0.0 255.255.255.0 U 0 0 0 docker0
10.10.1.0 0.0.0.0 255.255.255.0 U 0 0 0 br-f157255920a6
docker 本身停掉
systemctl stop docker.socket
systemctl stop docker
执行sudo pip 找不到pip
参考这个博客 Linux中pip能找到命令,加了sudo后报错:sudo: pip: command not found_瑾珮的博客-CSDN博客
总结:
- 要充分先了解自己网络,罗列出各种设备的网络
- 对于docker,bip,default-address-pools 等配置的重要性的忽视