Docker基本命令与使用 —— Docker容器的网络连接(四)
一.Docker容器的网络基础

- 可以设置IP地址
- 相当于拥有一个隐藏的虚拟网卡
- IP:172.17.42.1 子网掩码: 255.255.0.0
- MAC: 02:42:ac:11:00:00 到 02:42:ac:11:ff:ff
- 总共提供65534个地址

$ sudo brctl show
bridge name bridge id STP enabled interfaces
docker0 .0242ed943d02 no
运行一个docker容器,在容器中查看它的网络设备(如果没有ifconfig命令,通过apt-get install -y net-tools)
root@b2a3136f5425:/# ifconfig
eth0 Link encap:Ethernet HWaddr ::ac:::
inet addr:172.17.0.2 Bcast:0.0.0.0 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU: Metric:
RX packets: errors: dropped: overruns: frame:
TX packets: errors: dropped: overruns: carrier:
collisions: txqueuelen:
RX bytes: (184.9 KB) TX bytes: (4.7 KB) lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
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)
docker已经自动创建了eth0的网卡,注意观察ip地址和mac地址。不要退出容器,再运行如下查看网桥的状态
$ sudo brctl show
bridge name bridge id STP enabled interfaces
docker0 .0242ed943d02 no veth95521e6
我们看到在interface中多了一个veth*的这样一个接口。通过ifconfig命令同样可以看到这个网络接口。
自定义docker0
- 修改docker0默认分配的ip地址:
sudo ifconfig docker0 192.168.200.1 netmask 255.255.255.0
修改完后,重启docker服务 sudo service docker restart. 新运行的容器地址就变成了新的ip地址了。
- 添加虚拟网桥
sudo brctl addbr br0
sudo ifconfig br0 192.168.100.1 netmask 255.255.255.0
更改docker守护进程的启动配置:
二.Docker容器的互联
FROM ubuntu:14.04
RUN apt-get install -y ping
RUN apt-get update
RUN apt-get install -y nginx
RUN apt-get install -y curl
EXPOSE
CMD /bin/bash
1.允许所有容器互联
docker run --link=[CONTAINER_NAME]:[ALIAS] [IMAGE] [COMMAND]
CONTAINER_NAME: 需要连接的容器名字
docker -run -it --link=container01:webtest nginx
ping webtest
查看在容器中产生的哪些影响
2.拒绝所有容器间互联
3.允许特定容器间的连接
sudo iptables -L -n 查看iptables规则的情况
sudo iptables -F 清空iptables规则设置
sudo service docker restart 重新启用docker的服务
sudo iptables -L -n 再来查看iptables的设置,docker的规则链已经在第一位
重新启动容器即可
三.Docker容器与外部网络的连接
- ip_forward
sysctl net.ipv4.conf.all.forwarding
ip_forward本身是Linux系统中的一个变量,它的值决定了系统是否会转发流量。在Docker守护进程的默认参数中也有ip_forward选项,默认值是true.
- iptables

- 允许端口映射访问
- 限制IP访问容器
Docker基本命令与使用 —— Docker容器的网络连接(四)的更多相关文章
- Docker容器的网络连接
Docker容器的网络连接 Docker容器的网络连接 我们用ifconfig命令来查看网络设备 我们可以看到上面有个叫docker0的网络设备,docker守护进程就是通过docker0为docke ...
- Docker学习(13) Docker容器的网络连接
Docker容器的网络连接 Docker容器的网络基础 先安装网桥管理工具 Docker容器的互联 默认 Docker容器与外部网络的连接
- Docker学习笔记之为容器配置网络
0x00 概述 在互联网时代,网络已经成为绝大多数应用进行数据交换的主要通道,Docker 作为集群部署的利器,在网络支持上也下了许多功夫.功能丰富和强大,并不代表使用复杂,在 Docker 的封装下 ...
- Docker容器的网络连接:
yw1989@ubuntu:~$ ifconfig docker0 Link encap:Ethernet HWaddr 02:42:97:61:42:9f inet addr:172.17.0.1 ...
- Docker基本命令与使用 —— Docker容器(一)
一.容器的基本操作 1. 启动容器 docker run IMAGE [COMMAND] [ARG...] run 在新容器中执行命令 eg: docker run ubuntu echo 'Hell ...
- Docker 容器的网络连接 & 容器互联
1. Docker 容器网络基础架构 Docker0 ifconfig查看到的 docker0 是linux的虚拟网桥(OSI数据链路层) docker0 地址划分: 172.17.42.1 255. ...
- docker 查看容器的网络连接
#! /bin/bash echo $1 PID=$(docker inspect -f '{{.State.Pid}}' $1) nsenter -t $PID -n netstat |grep E ...
- Docker基本命令与使用 —— Docker镜像与仓库(二)
一.查看和删除镜像 1.Docker Image 镜像 容器的基石 层叠的只读文件系统 联合加载(union mount) (存储位置 /var/lib/docker) docker info 2.列 ...
- Docker学习笔记 - Docker容器的网络基础
一.虚拟网桥 docker0 docker0 是 linux的虚拟网桥,守护进程通过docker0给容器提供网络连接的各种服务. 网桥是数据链路层设备,通常ip地址是网络层的设置.linux的虚拟网桥 ...
随机推荐
- JS--reload 重新加载 true参数
location.reload() 作用是用来重新加载当前显示的页面. 如果调用reload()时不传递参数,页面就会以最有效的方式重新加载. 也就是说,如果页面自上次请求以来并没有改变过,页面就会从 ...
- day18_python_1124
01 鸡汤 荷花定律 山竹定律 金蝉定律 荷花定律: 明天比今天要生长多一倍,池塘三十天生长满,第29天是一半. 山竹定律: 竹子在生长时,前三年只出地表3厘米,从第四年开始,以每天30cm的速度开始 ...
- Python *Mix_w8
文件操作的函数 文件可迭代 open(文件名(路径), mode="?", encoding="字符集") f = open("../Python/是 ...
- Java数组声明、初始化
维数组的声明方式:type var[]; 或type[] var; 声明数组时不能指定其长度(数组中元素的个数), Java中使用关键字new创建数组对象,格式为:数组名 = new 数组元素的类型 ...
- oh_my_zsh
oh_my_zsh zsh默认已经安装 cat /etc/shells 查看安装没有 (https://xiaozhou.net/learn-the-command-line-iterm ...
- .NET并行计算和并发7-Task异步
使用任务并行库执行异步任务 下面的示例演示如何通过调用 TaskFactory.StartNew 方法来创建并使用 Task 对象. using System; using System.Thread ...
- disjoint set
MAKE-SET.x/ creates a new set whose only member (and thus representative) is x. Since the sets are d ...
- 吴恩达机器学习-octave笔记
隐藏前缀提示符:PS1('>>') 不显示打印内容:;结尾 字符串:a=’hi’ 屏幕输出:disp(sprint(‘2 decimals:%0.2f’,a)) 生成集合(矩阵):V=1: ...
- 基于SPA的网页授权流程(微信OAuth2)
先说传统MVC网站的网页授权流程. 1.用户发起了某个需要登录执行的操作 2.收集AppId等信息重定向到微信服务器 3.微信服务器回调到网站某个Controller的Action 4.在此Actio ...
- linux的基本操作3(权限)
sudo cat /etc/passwd 查看账户信息用户有自己的编号是uid,组也有自己的编号是giduseradd -D 查看默认添加账号的模板sudo useradd -m liu 添加带h ...