docker基础_网络模式
docker网络
网络模式:
bridge:docker默认
自己创建会默认使用bridge模式 类似vmware中的NAT模式
其中192.168.1.203是本机在现实世界局域网的ip、172.17.0.1是本机作为bridge模式的网关在docker中的ip,172.17.0.2、172.17.0.3、172.17.0.4这三个ip是三个容器对应的ip
none:不配置网络
此时容器只有本地回环网络 没有网卡、IP、路由等信息
host:和宿主机共享网络
如果启动容器的时候使用host模式,那么这个容器将不会获得一个独立的Network Namespace,而是和宿主机共用一个Network Namespace。容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。但是,容器的其他方面,如文件系统、进程列表等还是和宿主机隔离的。
使用host模式的容器可以直接使用宿主机的IP地址与外界通信,容器内部的服务端口也可以使用宿主机的端口,不需要进行NAT,host最大的优势就是网络性能比较好,但是docker host上已经使用的端口就不能再用了,网络的隔离性不好。
container:容器网络连通!(用的很少)
略
自定义网络
# driver是bridge模式(默认) --subnet 是设置子网 --gateway 配置网关(例如docker0)
beginner@beginner-virtual-machine:~$ docker network create --driver bridge --subnet 111.111.0.0/24 --gateway 111.111.0.1 mynet
7c806260fc5f2827fa1b6698c9b704c31b77730c3d86b94c54cccc18d84530c3
# 现在本地网络中就多路mynet这个网络 驱动是bridge
# 官方自带三个 网络 bridge host none 前两个与驱动重名注意区分
beginner@beginner-virtual-machine:~$ docker network ls
NETWORK ID NAME DRIVER SCOPE
172e6878311f bridge bridge local
264f73f29c24 desktop_redis_net bridge local
700a25830a95 host host local
7c806260fc5f mynet bridge local
de08c55033d0 none null local
# 现在即可使用自定义的网络
beginner@beginner-virtual-machine:~$ docker run -d -it --name xxxxx --net mynet 镜像id
在命令中查看,加深理解
- 显示docker的网络情况与本机的网卡情况
#显示本机的所有网络
beginner@beginner-virtual-machine:~$ docker network ls
NETWORK ID NAME DRIVER SCOPE
172e6878311f bridge bridge local
264f73f29c24 desktop_redis_net bridge local #自定义网络
700a25830a95 host host local
de08c55033d0 none null local
beginner@beginner-virtual-machine:~$ ifconfig
#一个主机可以有多个ip
#这是自定义网络desktop_redis_net本机对应的ip 本机作为网关与同网段的主机通信
br-264f73f29c24: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.2.1 netmask 255.255.255.0 broadcast 192.168.2.255
ether 02:42:cd:cb:3b:8d txqueuelen 0 (以太网)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
# 系统自带的bridge网络 本机对应的ip
docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255
inet6 fe80::42:46ff:fec8:d331 prefixlen 64 scopeid 0x20<link>
ether 02:42:46:c8:d3:31 txqueuelen 0 (以太网)
RX packets 51291 bytes 3642933 (3.6 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 77991 bytes 154775800 (154.7 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
# 本机在现实局域网中的地址
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.106 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::3c6c:1530:5c72:d562 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:2b:90:45 txqueuelen 1000 (以太网)
RX packets 484838 bytes 671416037 (671.4 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 163810 bytes 12705677 (12.7 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
# 回环地址127.0.0.1
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (本地环回)
RX packets 1895 bytes 166608 (166.6 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1895 bytes 166608 (166.6 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
#下面两个是两个容器的ip
veth7cab0bc: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::10a7:e6ff:feb0:3f4b prefixlen 64 scopeid 0x20<link>
ether 12:a7:e6:b0:3f:4b txqueuelen 0 (以太网)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 53 bytes 5652 (5.6 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
vetha887cda: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::e881:92ff:fed7:8261 prefixlen 64 scopeid 0x20<link>
ether ea:81:92:d7:82:61 txqueuelen 0 (以太网)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 58 bytes 6176 (6.1 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
- 查看运行中的容器发现均在名bridge的网络下
beginner@beginner-virtual-machine:~$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b42d286b72af 5cc8c "python3" 5 hours ago Up 5 hours dreamy_rubin
5cc1beeff39b tomcat:latest "catalina.sh run" 6 hours ago Up 6 hours 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp clever_goldberg
beginner@beginner-virtual-machine:~$ docker network inspect bridge
#下面显示在bridge网络下的主机
"Containers": {
"5cc1beeff39b8b249b4329ff9319737062693f7b3817eedd8b9d757498cc42b1": {
"Name": "clever_goldberg",
"EndpointID": "e971452f34c6330897e0b877cba2151e1d8b5141bff4a3b19754b7346f42c098",
"MacAddress": "02:42:ac:11:00:02",
"IPv4Address": "172.17.0.2/16",
"IPv6Address": ""
},
"b42d286b72af73b006819b28b11e235677d87f47ee2c19c6cfaec78d030cda09": {
"Name": "dreamy_rubin",
"EndpointID": "08a4acef8b848e2276206a5c3f787d3fe10377ae363c65569a72e72f7ee14420",
"MacAddress": "02:42:ac:11:00:03",
"IPv4Address": "172.17.0.3/16",
"IPv6Address": ""
}
docker基础_网络模式的更多相关文章
- [转帖]Docker四种网络模式
Docker(十四)-Docker四种网络模式 https://www.cnblogs.com/zhuochong/p/10069293.html 计算机网络相关的知识 非常有用.. Docker 安 ...
- Docker 四种网络模式
原文 https://www.cnblogs.com/gispathfinder/p/5871043.html 我们在使用docker run创建Docker容器时,可以用--net选项指定容器的网络 ...
- Docker学习第四天(Docker四种网络模式)
Docker四种网络模式 实现原理 Docker使用Linux桥接(参考<Linux虚拟网络技术>),在宿主机虚拟一个Docker容器网桥(docker0),Docker启动一个容器时会根 ...
- Docker(十四)-Docker四种网络模式
Docker 安装时会自动在 host 上创建三个网络,我们可用 docker network ls 命令查看: none模式,使用--net=none指定,该模式关闭了容器的网络功能. host模式 ...
- Docker笔记03-docker 网络模式
docker网络模式分为5种 Nat (Network Address Translation) Host other container none overlay 第一种 Nat模式 docker的 ...
- Docker——四种网络模式
docker run创建Docker容器时,可以用–net选项指定容器的网络模式,Docker有以下4种网络模式: bridge模式:使用–net =bridge指定,默认设置: host模式 ...
- docker四种网络模式
1,host模式 启动容器时,添加参数--net=host 此模式和宿主机使用的是同1个ip,适合上网. 2,container模式 启动容器时,添加参数--net=container,docker ...
- docker基础——4.网络待补
docker network ls bridge:NAT桥 host:共用宿主机namespace的UTS.IPC.Network none:只有lo,没有网卡 其他待补
- docker基础_数据卷
docker数据卷 为什么要使用数据卷 如果数据都在容器中,那么容器一旦删除,数据就会丢失!docker容器需要将产生的数据同步到本地.容器与容器之间也需要有一个数据共享的技术 将某些文件共享.这就是 ...
随机推荐
- redis哨兵功能
redis哨兵功能 redis-Sentinel(哨兵) 前言 当用redis作master-slave的高可用时,如果master本身宕机,redis本身或者客户都没有实现主从切换的功能 redis ...
- Azure DevOps (七) 通过SSH部署上传到服务器的应用
上一篇中,我们实现了通过FTP把流水线编译出来的制品上传到我们的公网服务器上,这一篇我们来研究一下通过azure的ssh连接到服务器 把应用在服务器上运行起来. 首先,我们书接上文,在release流 ...
- Rust极简教程
目录 简介 特性 特征 用途 安装 核心组件 常用命令 基础语法 数据类型 标量类型 复合类型 示例 条件语句 循环 输出&输入 输出 输出花括号 输出非基础类型 输入 所有权 切片 结构体 ...
- 《手把手教你》系列基础篇(八十三)-java+ selenium自动化测试-框架设计基础-TestNG测试报告-下篇(详解教程)
1.简介 其实前边好像简单的提到过测试报告,宏哥觉得这部分比较重要,就着重讲解和介绍一下.报告是任何测试执行中最重要的部分,因为它可以帮助用户了解测试执行的结果.失败点和失败原因.另一方面,日志记录对 ...
- eclipse启动指定jvm的版本
参阅:https://www.eclipse.org/forums/index.php/t/1105435/ https://wiki.eclipse.org/Eclipse.ini#-vm_valu ...
- RabbitMQ 的集群?
镜像集群模式 你创建的 queue,无论元数据还是 queue 里的消息都会存在于多个实例上,然后每次你写消息到 queue 的时候,都会自动把消息到多个实例的 queue 里进行消息同步. 好处在于 ...
- 三、MyCat主要配置介绍
一.配置文件 1.server.xml Mycat的配置文件,设置账号.参数等2.schema.xml Mycat对应的物理数据库和数据库表的配置3.rule.xml Mycat分片(分库分表)规则 ...
- Spring IoC 的实现机制?
Spring 中的 IoC 的实现原理就是工厂模式加反射机制. 示例: interface Fruit { public abstract void eat(); } class Apple impl ...
- Clickhouse 用户自定义外部函数
写在前面 Clickhouse 从 21.11 版本开始,除了提供类似SqlServer.MySQL CREATE FUNCTION 的自定义函数之外,还有一个用户自定义函数(UDF),与其说是&qu ...
- 《自动控制原理》个人笔记(来自ppt课件)
控制的含义 控制(CONTROL)----某个主体使某个客体按照一定的目的动作.主体–人:人工控制: 机器:自动控制客体–指一件物体,一套装置,一个物化过程,一个特定系统. 人工控制与自动控制 人在控 ...