docker--扩展学习-网络--命令--15

docker–扩展学习-网络–命令–15


1、创建网络

1.1、简单创建容器

# 创建
docker network create net111
# 查看
docker network inspect net111

在这里插入图片描述

在这里插入图片描述

1.2、指定参数创建容器

# ----创建----
docker network create -d bridge \
# 指定子网络,在bridge网络中只可以指定一个子网络,而在overlay网络中支持多个子网络。
--subnet=192.168.0.0/16 \
# 指定网关
--gateway=192.168.0.100 \
# 指定IP 范围
--ip-range=192.168.1.0/24 \
--aux-address="my-switch=192.168.1.6" \
net333

 
# ----查看----
docker network inspect net333

在这里插入图片描述

在这里插入图片描述

2、将容器连接到网络

docker network connect networkName containerName
 
  1. 将containerName容器连接到networkName网络中
  2. 1个容器可以连接到多个不同网络驱动的网络中

2.1、创建两个容器,c1 和 c2

# 加入默认bridge网络
docker run -itd --name=c1 busybox
# 加入默认bridge网络
docker run -itd --name=c2 busybox

在这里插入图片描述

2.2、创建一个网络 net444


docker network create -d bridge --subnet 172.26.0.0/16 net444

2.3、c2 容器 连接网络 net444

# 容器连接网络
docker network connect net444 c2
 
# 查看网络
docker network inspect net444

在这里插入图片描述

c2,自动分配到了IP地址。此时c1,仍然连接在默认的bridge网络。

2.4、启动容器c3,且指定IP地址


# 指定网络是net444,IP是 172.26.3.3
docker run --network=net444 --ip=172.26.3.3 -itd --name=c3 busybox

# 查看网络
docker network inspect net444

在这里插入图片描述

2.5、c2的网络

c2创建的时候,默认加入bridge网络,我们手动连接了网络net444,这个时候c2有2个网络

在这里插入图片描述

# 进入正在运行的容器
docker attach c2
# 查看网络
ifconfig

在这里插入图片描述

2.6、可以通过容器名称访问网络

# 进入正在运行的容器
docker attach c2
 
同一网络支持

c2和c3都在net444网络

在这里插入图片描述

不同网络不支持

c1在bridge网络
c2在net444网络

在这里插入图片描述

3、断开容器的网络

断开c2和net444网络的连接

# 断开网络
docker network disconnect net444 c2


# 查看网络
docker network inspect net444

在这里插入图片描述

4、删除网络

4.1、删除指定名称的网络

# 创建
docker network create net555
# 删除
docker network rm  net555

在这里插入图片描述

4.2、删除全部未使用的网络

docker network prune

在这里插入图片描述

5、列出Docker主机上的全部网络

docker network ls

在这里插入图片描述

6、网络别名

6.1、创建容器时指定

# 创建
docker network create net666
# 创建容器指定网络别名是alias_666
docker run --network=net666 --network-alias alias_666 -itd --name=c5 busybox
# 进入容器
docker attach c5
# ping  网络别名 alias_666
ping alias_666

在这里插入图片描述

6.2、创建容器之后追加网络别名

在这里插入图片描述

7、查看路由

route -n

在这里插入图片描述

7、网桥

7.1、安装网桥

# 安装网桥
yum install -y bridge-utils
 

7.2、查看网桥

 
查看网桥
brctl show

在这里插入图片描述

7.3、创建网桥

# 创建网桥
[root@zhoufei ~]# brctl  addbr br0
# 配置网关IP
[root@zhoufei ~]# ifconfig  br0 18.18.0.1


在这里插入图片描述

8、查看iptables规则

iptables-save

内容

[root@zhoufei ~]# iptables-save
# Generated by iptables-save v1.4.21 on Sun Feb 13 20:06:21 2022
*filter
:INPUT ACCEPT [508:37682]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [325:51996]
:DOCKER - [0:0]
:DOCKER-ISOLATION-STAGE-1 - [0:0]
:DOCKER-ISOLATION-STAGE-2 - [0:0]
:DOCKER-USER - [0:0]
-A FORWARD -j DOCKER-USER
-A FORWARD -j DOCKER-ISOLATION-STAGE-1
-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -o docker0 -j DOCKER
-A FORWARD -i docker0 ! -o docker0 -j ACCEPT
-A FORWARD -i docker0 -o docker0 -j ACCEPT
-A DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -j RETURN
-A DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -j RETURN
-A DOCKER-USER -j RETURN
COMMIT
# Completed on Sun Feb 13 20:06:21 2022
# Generated by iptables-save v1.4.21 on Sun Feb 13 20:06:21 2022
*nat
:PREROUTING ACCEPT [8:1754]
:INPUT ACCEPT [8:1754]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:DOCKER - [0:0]
-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
-A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
-A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE
-A DOCKER -i docker0 -j RETURN
COMMIT
# Completed on Sun Feb 13 20:06:21 2022
[root@zhoufei ~]# 


8.1、其中nat表中的POSTROUTING链有这么一条规则

-A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE


8.1.1、参数说明

-s 172.17.0.0/16

源地址172.17.0.0/16

-o docker0

指定数据报文流出接口为docker0

-j MASQUERADE

动作为MASQUERADE(地址伪装)

8.1.2、含义

将源地址为172.17.0.0/16的数据包(即Docker容器发出的数据),当不是从docker0网卡发出时做SNAT。
这样一来,从Docker容器访问外网的流量,在外部看来就是从宿主机上发出的,外部感觉不到Docker容器的存在。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用Docker Compose配置MySQL集群。首先,你需要创建一个Docker网络,比如mysqlms_myweb,可以使用以下命令来创建网络: ``` docker network create mysqlms_myweb ``` 然后,你可以使用docker-compose.yml文件来定义MySQL集群的配置。在文件中,你可以指定每个MySQL实例的容器,并在它们之间设置适当的连接和环境变量。这样,当你启动Docker Compose时,它将自动创建和连接这些容器。 下面是一个示例docker-compose.yml文件的配置,将创建一个包含两个MySQL实例的集群: ``` version: '3' services: mysql1: image: mysql restart: always environment: MYSQL_ROOT_PASSWORD: password networks: - mysqlms_myweb mysql2: image: mysql restart: always environment: MYSQL_ROOT_PASSWORD: password networks: - mysqlms_myweb networks: mysqlms_myweb: external: name: mysqlms_myweb ``` 在这个配置中,我们定义了两个MySQL实例:mysql1和mysql2。每个实例都使用了mysql镜像,并设置了root用户的密码。 同时,我们还定义了一个外部网络mysqlms_myweb,并将这两个MySQL实例连接到了这个网络上,以便它们可以相互通信。 为了启动MySQL集群,你可以使用以下命令运行Docker Compose: ``` docker-compose up -d ``` 通过这个配置,你将创建一个包含两个MySQL实例的集群,可以通过mysql1和mysql2来访问它们。 请注意,这只是一个示例配置,你可以根据你的需求进行修改和扩展。同时,你还可以在docker-compose.yml文件中添加其他服务,并与MySQL集群进行连接和通信。 引用提供了关于使用Docker Compose建立ELK集群的实现方法的详细说明,你可以参考其中的示例代码和配置进行学习和实践。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [docker-compose部署mysql主从复制集群](https://blog.csdn.net/qq_29012499/article/details/128489129)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Docker-compose 建立ELK集群的实现方法](https://download.csdn.net/download/weixin_38589314/12899018)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [python开发Youtube官方调用接口,支持一键部署!!!](https://download.csdn.net/download/L_huiger/88221247)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值