美文网首页
Docker搭建中间键,记一次搞坏服务器网络问题

Docker搭建中间键,记一次搞坏服务器网络问题

作者: 满脸胡渣的年轻大叔 | 来源:发表于2023-04-10 14:05 被阅读0次

背景

由于生产环境需要安装nacos
看了一下教程
有几种方式

方式一

  1. 装jdk
  2. 装maven
  3. 下载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

先按第一种方式安装 :

image.png

发现装完之后,不可用,应该有一些必要的工具,没有更新,因为正常都会按这种方式安装

方式二(未采用,由于要更新大量工具)

image.png

方式三(最终采用并安装 )

使用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默认的网段 - linjiangCN - 博客园 (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)启动的也能控制

过程中,使用到的一些工具

查看当前设备的虚拟网卡信息

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博客

保存一张图片,防止博客链接失效

总结:

  1. 要充分先了解自己网络,罗列出各种设备的网络
  2. 对于docker,bip,default-address-pools 等配置的重要性的忽视

相关文章

网友评论

      本文标题:Docker搭建中间键,记一次搞坏服务器网络问题

      本文链接:https://www.haomeiwen.com/subject/ssbiddtx.html