0
点赞
收藏
分享

微信扫一扫

Ribbon-负载均衡原理解析(案例)

千白莫 04-14 19:30 阅读 0

一、高级网络配置

1.1概述

1.2网络信息命令

查看网络信息

docker network ls

创建一个网桥

docker network create -d bridge 网桥名称

删除一个网桥

docker network rm 网桥名称

查看网桥详细

docker inspect els

1.3容器之前使用网络通信

查询当前网络配置

创建桥接网络

启动容器指定使用网桥

- docker run -d -p 8890:80 --name nginx001 --network info nginx 
- docker run -d -p 8891:80 --name nginx002 --network info nginx 
	`注意:一旦指定网桥后--name指定名字就是主机名,多个容器指定在同一个网桥时,可以在任意一个容器中使用主机名与容器进行互通`

二、数据卷配置

2.1说明

2.2数据卷特性

Volume可以在运⾏容器时即完成创建与绑定操作,前提是拥有声明。
Volume的初衷是数据持久化。

 

2.3在容器中使⽤Volumes

# 创建一个名为data的Docker容器,并使用Docker管理的卷进行挂载
docker run -d --name data -v <Mount-dir> tomcat

# 使用docker inspect命令查看data容器的挂载信息
docker inspect -f {{.Mounts}} data

# 创建一个名为data的Docker容器,并使用主机目录进行绑定挂载
docker run -d --name data -v <Host-dir>:<Volume-dir> tomcat

# 创建一个名为data的Docker容器,并使用联合卷进行挂载
docker run -d --name data --volume-from <Container> tomcat

举例

2.4数据卷命令

创建数据卷

docker volume create my-vol

 查看数据卷

docker volume inspect my-vol  
[
    {
        "CreatedAt": "2020-11-25T11:43:56+08:00",
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/my-vol/_data",
        "Name": "my-vol",
        "Options": {},
        "Scope": "local"
    }
]

挂载数据卷

docker run -d -P --name web  -v my-vol:/usr/share/nginx/html  nginx

删除数据卷

docker volume rm my-vol

三、Docker网络通信

3.1概述

容器与容器之间

 容器访问外部⽹络

iptables -t nat -A POSTROUTING -s 
172.17.0.0/16 -o docker -j MASQUERADE 

外部⽹络访问容器(DNAT) 

docker run -p 80:80 apache 
iptables -t nat -A PREROUTING -m 
addrtype --dst-type LOCAL -j DOCKER 
iptables -t nat -A DOCKER ! -i 
docker0 -p tcp -m tcp --dprot 80 =j 
DNAT --to-destination 172.17.0.2:80

 3.2Namespace隔离

进⾏namespace API操作的四种⽅式

clone()

 查看/proc/[pid]/ns

ls -l /proc/$$/ns

setns()

 unshare()

fork()

 3.3Namespace

UTS

IPC

PID

Mount 

Network

 User

3.4Docker网络模式修改

/etc/systemd/system/docker.service  dockerd ...

docker run ...(只针对当前容器)

 端⼝映射 
-p、-P选项的使⽤格式

/etc/docker/daemon.json

# 定义一个字典,存储网络配置信息
network_config = {
    "bip": "192.168.1.5/24",  # IP地址和子网掩码
    "fixed-cidr": "10.20.0.0/16",  # 固定CIDR网络范围
    "fixed-cidr-v6": "2001:db8::/64",  # 固定CIDR IPv6网络范围
    "mtu": "1500",  # 最大传输单元
    "default-gateway": "10.20.1.1",  # 默认网关IP地址
    "default-gateway-v6": "2001:db8:abcd::89",  # 默认网关IPv6地址
    "dns": ["10.20.1.2", "10.20.1.3"]  # DNS服务器列表
}

3.5常⻅隔离⽅式

 3.6容器的跨主机通信

IP转发

配置iptables

# 设置iptables的FORWARD链的策略为ACCEPT,允许所有转发的数据包通过
iptables -P FORWARD ACCEPT

# 清空并删除所有非内置的iptables链和规则
iptables -F && iptables -X

# 清空并删除所有非内置的nat表中的链和规则
iptables -F -t nat && iptables -X -t nat

# 执行一次性的systemd命令,用于重新加载配置文件
one shot systemd

# 将/etc/profile.d目录添加到系统环境变量中,以便在系统启动时自动执行其中的脚本
/etc/profile.d

 3.7容器⽹络⽅案

pipework


 

Weave

Open vSwitch

 

安装⽹桥管理⼯具

 

 

举报

相关推荐

0 条评论