Docker 容器网络
zane@zane-V:~$ docker network ls
NETWORK ID NAME DRIVER SCOPE
4b10534b40ff bridge bridge local
7dbe50e049ea host host local
08bfed547b1e none null local
zane@zane-V:~$ ifconfig docker0 Link encap:以太网 硬件地址 ::dc::cb:3c
inet 地址:172.17.0.1 广播:0.0.0.0 掩码:255.255.0.0
inet6 地址: fe80:::dcff:fe06:cb3c/ Scope:Link
UP BROADCAST MULTICAST MTU: 跃点数:
接收数据包: 错误: 丢弃: 过载: 帧数:
发送数据包: 错误: 丢弃: 过载: 载波:
碰撞: 发送队列长度:
接收字节: (1.9 MB) 发送字节: (156.7 MB)
zane@zane-V:~$ docker network inspect bridge
[
{
"Name": "bridge",
"Id": "4b10534b40ffa1d92610668060d8b831079a213f81f82c4f97f71ed1eb54b441",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.17.0.0/16",
"Gateway": "172.17.0.1"
}
]
},
"Internal": false,
"Containers": {},
"Options": {
"com.docker.network.bridge.default_bridge": "true",
"com.docker.network.bridge.enable_icc": "true",
"com.docker.network.bridge.enable_ip_masquerade": "true",
"com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
"com.docker.network.bridge.name": "docker0",
"com.docker.network.driver.mtu": ""
},
"Labels": {}
}
]
zane@zane-V:~$ docker run -itd --name=container1 busybox
Unable to find image 'busybox:latest' locally
latest: Pulling from library/busybox
557a0c95bfcd: Pull complete
Digest: sha256:ae007bdb45fc0d56e3d705b97640ac24844bcc9ce4c8b8493f216a57ab6af0d5
Status: Downloaded newer image for busybox:latest
72b7379b7d426f4bab0a41a83643da3e2a40ed38f976154a413b914326af330b
zane@zane-V:~$ docker run -itd --name=container2 busybox
e9bce535ae32945f5e43340facdb6c16c93d92119e85b61c6cb7a5379a0caf63
zane@zane-V:~$ docker network inspect bridge
[
{
"Name": "bridge",
"Id": "4b10534b40ffa1d92610668060d8b831079a213f81f82c4f97f71ed1eb54b441",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.17.0.0/16",
"Gateway": "172.17.0.1"
}
]
},
"Internal": false,
"Containers": {
"72b7379b7d426f4bab0a41a83643da3e2a40ed38f976154a413b914326af330b": {
"Name": "container1",
"EndpointID": "63adfc2048157821ef74c5ff7220053d47df2e34042a93938fb9d653188bf121",
"MacAddress": "02:42:ac:11:00:02",
"IPv4Address": "172.17.0.2/16",
"IPv6Address": ""
},
"e9bce535ae32945f5e43340facdb6c16c93d92119e85b61c6cb7a5379a0caf63": {
"Name": "container2",
"EndpointID": "0a2d00f6688b36431e8338583ae30d8d23451dc42b8edc058c3622d3e5a51aef",
"MacAddress": "02:42:ac:11:00:03",
"IPv4Address": "172.17.0.3/16",
"IPv6Address": ""
}
},
"Options": {
"com.docker.network.bridge.default_bridge": "true",
"com.docker.network.bridge.enable_icc": "true",
"com.docker.network.bridge.enable_ip_masquerade": "true",
"com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
"com.docker.network.bridge.name": "docker0",
"com.docker.network.driver.mtu": ""
},
"Labels": {}
}
]
zane@zane-V:~$ docker attach container1
/ # ifconfig
eth0 Link encap:Ethernet HWaddr ::AC:::
inet addr:172.17.0.2 Bcast:0.0.0.0 Mask:255.255.0.0
inet6 addr: fe80:::acff:fe11:/ Scope:Link
UP BROADCAST RUNNING MULTICAST MTU: Metric:
RX packets: errors: dropped: overruns: frame:
TX packets: errors: dropped: overruns: carrier:
collisions: txqueuelen:
RX bytes: (4.9 KiB) TX bytes: (648.0 B) lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::/ Scope:Host
UP LOOPBACK RUNNING MTU: Metric:
RX packets: errors: dropped: overruns: frame:
TX packets: errors: dropped: overruns: carrier:
collisions: txqueuelen:
RX bytes: (0.0 B) TX bytes: (0.0 B) / # whoami
root
/ # uname -a
Linux 72b7379b7d42 4.2.--generic #~14.04.-Ubuntu SMP Fri Jan :: UTC x86_64 GNU/Linux
/ # exit
zane@zane-V:~$
zane@zane-V:~$ docker attach container1
/ # ping -w3 172.17.0.3
PING 172.17.0.3 (172.17.0.3): data bytes
bytes from 172.17.0.3: seq= ttl= time=0.071 ms
bytes from 172.17.0.3: seq= ttl= time=0.045 ms
bytes from 172.17.0.3: seq= ttl= time=0.047 ms --- 172.17.0.3 ping statistics ---
packets transmitted, packets received, % packet loss
round-trip min/avg/max = 0.045/0.054/0.071 ms
zane@zane-V:~$ docker network create --driver bridge isolated_nw
6e9792814d7ec6ab954c207dbec1eb61dba1f9b37750fba9e5f9721c074901fe
zane@zane-V:~$ docker network inspect isolated_nw
[
{
"Name": "isolated_nw",
"Id": "6e9792814d7ec6ab954c207dbec1eb61dba1f9b37750fba9e5f9721c074901fe",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "172.19.0.0/16",
"Gateway": "172.19.0.1/16"
}
]
},
"Internal": false,
"Containers": {},
"Options": {},
"Labels": {}
}
]
zane@zane-V:~$ docker network ls
NETWORK ID NAME DRIVER SCOPE
4b10534b40ff bridge bridge local
7dbe50e049ea host host local
6e9792814d7e isolated_nw bridge local
c741cdd168b0 my-bridge-network bridge local
08bfed547b1e none null local
zane@zane-V:~$ docker run --network=isolated_nw -itd --name=container3 busybox
ff22003c26acb64fb7b867b4cbaeb96ebf7b11765a2623379c82aa33182de026
zane@zane-V:~$ docker network inspect isolated_nw
[
{
"Name": "isolated_nw",
"Id": "6e9792814d7ec6ab954c207dbec1eb61dba1f9b37750fba9e5f9721c074901fe",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "172.19.0.0/16",
"Gateway": "172.19.0.1/16"
}
]
},
"Internal": false,
"Containers": {
"ff22003c26acb64fb7b867b4cbaeb96ebf7b11765a2623379c82aa33182de026": {
"Name": "container3",
"EndpointID": "7bea487483d2e4a4d1e7eba08b58a596df884e738b0a5d5219abfa57ebefc89e",
"MacAddress": "02:42:ac:13:00:02",
"IPv4Address": "172.19.0.2/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
.png)
.png)
- 当你初始化或者加入一个swarm,Dcoker会创建docker_gwbridge.
- 并使用它作为 不同主机的swarm 节点通讯网络。
- 当没有一个容器网络可以提供与外部的连接,
- Docker将容器连接到docker_gwbridge网络以及容器的其他网络,
- 以便容器可以连接到外部网络或其他swarm节点。
zane@zane-V:~$ docker network create --subnet 172.30.0.0/ \
> --opt com.docker.network.bridge.name=docker_gwbridge \
> --opt com.docker.network.bridge.enable_icc=false \
> docker_gwbridge
689e4d893ca525c9e6765abbbe65d68f40ce2bca9592cf6c2b147b06647f8354
# Create an overlay network `my-multi-host-network`.
$ docker network create \
--driver overlay \
--subnet 10.0.9.0/ \
my-multi-host-network
400g6bwzd68jizzdx5pgyoe95 # Create an nginx service and extend the my-multi-host-network to nodes where
# the service's tasks run.
$ docker service create --replicas --network my-multi-host-network --name my-web nginx 716thylsndqma81j6kkkb5aus
.png)
.png)
.png)
| Option | Description |
|---|---|
--cluster-store=PROVIDER://URL |
Describes the location of the KV service. |
--cluster-advertise=HOST_IP|HOST_IFACE:PORT |
The IP address or interface of the HOST used for clustering. |
--cluster-store-opt=KEY-VALUE OPTIONS |
Options such as TLS certificate or tuning discovery Timers |
$ docker network create --driver overlay my-multi-host-network
.png)
$ docker run -itd --network=my-multi-host-network busybox
- 一般容器使用ip地址通讯,也可以使用容器名称进行通信,但必须制定参数
- docker run --link
- 连接到正在运行的容器中
- docker attach container1
- 注意:误退出容器
- 在容器shell 界面 的exit 会导致容器停止,而不是仅仅退出shell
- 正常退出可以使用 ctr -p + ctr -q
- 同一网络中的容器可以通信,与其他网络中的容器隔离
- 开放共同端口,用于在桥接模式下,本地主机容器与外部主机容器通信
- docker_gwbridge 用于与外部网络连接
Docker 容器网络的更多相关文章
- Docker容器网络篇
Docker容器网络篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Docker的网络模型概述 如上图所示,Docker有四种网络模型: 封闭式网络(Closed conta ...
- 【转】理解Docker容器网络之Linux Network Namespace
原文:理解Docker容器网络之Linux Network Namespace 由于2016年年中调换工作的原因,对容器网络的研究中断过一段时间.随着当前项目对Kubernetes应用的深入,我感觉之 ...
- 两台主机间docker容器网络互通
服务器1: 网络172.30.0.0/16 服务器2: 网络172.31.0.0/16 服务器1和服务器2上的docker容器网络之间是无法互通的,如果需要互通,需要做以下配置: 服务器1上执行: i ...
- docker容器网络bridge
我们知道docker利用linux内核特性namespace实现了网络的隔离,让每个容器都处于自己的小世界里面,当这个小世界需要与外界(宿主机或其他容器)通信的时候docker的网络就发挥作用了,这篇 ...
- Docker容器网络-基础篇
开源Linux 一个执着于技术的公众号 Docker的技术依赖于Linux内核的虚拟化技术的发展,Docker使用到的网络技术有Network Namespace.Veth设备对.Iptables/N ...
- Docker容器网络配置
Docker容器网络配置 1.Linux内核实现名称空间的创建 1.1 ip netns命令 可以借助ip netns命令来完成对 Network Namespace 的各种操作.ip netns命令 ...
- docker容器网络
1.我们在使用docker run创建Docker容器时,可以用--net选项指定容器的网络模式,Docker有以下4种网络模式: · host模式,使用--net=host指定 · containe ...
- 5、Docker容器网络
使用Linux进行IP层网络管理的指 http://linux-ip.net/html/ # yum install iproute http://linux-ip.net/html/tool ...
- 初学Docker容器网络不得不看的学习笔记
一.关于Docker Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后 ...
随机推荐
- day 17 jQuery
什么是jQuery? 可以把它认为是python中的模块,导入就可以使用模块中的功能. jQuery 的版本: 1.xx 系列 2.xx 系列 3.xx 系列 最常用的为1 系列,1系列最新版为1.1 ...
- Python+Selenium中级篇之-封装一个自己的类-浏览器引擎类
前一篇文章我们知道了,如何去封装几个简单的Selenium方法到我们自定义的类,这次我们编写一个类,叫浏览器引擎类,通过更改一个字符串的值,利用if语句去判断和控制启动那个浏览器.这里我们暂时,支持三 ...
- nodejs、yarn编译安装
yarn和npm一样,是nodejs的一个依赖管理工具 1.安装nodejs 如果缺少c++ compiler 会报错 yum install -y gcc gcc-c++ 安装nodejs V8 ...
- TOJ 4105 Lines Counting(离线树状数组)
4105. Lines Counting Time Limit: 2.0 Seconds Memory Limit: 150000K Total Runs: 152 Accepted Ru ...
- [LOJ#2327]「清华集训 2017」福若格斯
[LOJ#2327]「清华集训 2017」福若格斯 试题描述 小d是4xx9小游戏高手. 有一天,小d发现了一个很经典的小游戏:跳青蛙. 游戏在一个 \(5\) 个格子的棋盘上进行.在游戏的一开始,最 ...
- [AHOI2014&&JSOI2014][bzoj3876] 支线剧情 [上下界费用流]
题面 传送门 思路 转化模型:给一张有向无环图,每次你可以选择一条路径走,花费的时间为路径上边权的总和,问要使所有边都被走至少一遍(可以重复),至少需要花费多久 走至少一遍,等价于覆盖这条边 也就是说 ...
- springboot中的几种scope
写在开始 技术点 接受方式 判读在线方式 接受数据 发送数据 敬上代码 入口函数 消息处理 单聊实现 传送门: 回到顶部 写在开始 上面一篇写了一篇使用WebSocket做客户端,然后服务端是sock ...
- log4j.xml配置文件详解
一 log4j.xml 配置 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:c ...
- 1 - Django安装
一.Python安装 在Mac系统下,系统自带python开发环境,打开终端,输入python,我们就可以看到当前python版本号,例如我的系统是OS X EI Caption 10.11.1,自带 ...
- ClassLoader 提供了两个方法用于从装载的类路径中取得资源:
转:http://cheneyph.iteye.com/blog/831721 ClassLoader 提供了两个方法用于从装载的类路径中取得资源: public URL getResource ( ...