Docker的none模型实战

none网络模式,是一种自由度非常高的网络模式,我们可以最大化的自定义我们想要的网络

none案例–自定义桥接网络

配置自定义桥接网络案例 为了使本地网络中和Docker容器更方便的通信,我们经常会有将Docker容器配置到和主
机同一网段,而且还要指定容器的ip地址。
需求: 自定义容器网络和宿主机为同一网段,容器ip可以指定。
案例分析:一、自定义容器网络段和宿主机一样
二、自定义容器ip地址 知识关键点
1、网络配置
docker虚拟网桥配置
docker服务使用网桥
容器创建使用none模式

2、使用pipwork工具实现定制docker容器ip地址
注释:pipwork的命令格式
pipework [桥接设备][容器id或者名字] [容器ip]/[ip掩码]@[宿主机网关]
例子:
pipework br0 ubuntu-test1 192.168.8.201/24@192.168.8.2

3、映射虚拟机软件源进入到容器,替换掉容器内部软件源后进行软件源更新与安装
注释:docker上pull下来的Ubuntu,使用apt-get install 命令下载速度奇慢无比,需要修改其软件源,进入etc/apt
目录欲修改sources.list 发现vi,vim,gedit都没有,再下这些软件也非常慢.
解决方法:
3.1启动容器时,挂载本地Linux系统的etc/apt文件
docker run -ti -v /etc/apt/:/home/etc ubuntu
3.2删除容器下的sources.lis rm /etc/apt/sources.list
3.3将本地sources.list 复制过来 cp /home/etc/sources.list /etc/apt/

自定义桥接网络实施

#1、网络环境部署
#1.1 网卡环境部署
#1.1.1 网桥软件部署
:~$ sudo apt-get install bridge-utils -y
:~$ brctl show
bridge   name   bridge   id    STP    enabled       interfaces
docker0 8000.0242a6e980f2       no

#1.1.2 桥接网卡配置
#编辑网卡信息编辑Ubuntu的网卡信息文件
#对源文件进行备份
:~$ sudo cp /etc/network/interfaces /etc/network/interfaces-old
:~$ sudo vim /etc/network/interfaces

#与源文件内容进行1行的空行
auto br0
iface br0 inet static
address 192.168.110.14
netmask 255.255.255.0
gateway 192.168.110.2
dns-nameservers 192.168.110.2
bridge_ports ens33

#重启
service network restart

#1.2 docker服务配置
#1.2.1 配置docker文件
:~$ sudo vim /etc/default/docker

#最末尾添加
DOCKER_OPTS="-b=br0"

#1.2.2 systemctl使用docker文件
#创建服务依赖文件
:~$ sudo mkdir -p /etc/systemd/system/docker.service.d
:~$ sudo vim /etc/systemd/system/docker.service.d/Using_Environment_File.conf

#内容如下:
[Service]
EnvironmentFile=-/etc/default/docker
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// $DOCKER_OPTS

#重载服务配置文件
:~$ systemctl daemon-reload
#1.2.3 重启docker **第一次配置的时候需要重启linux虚拟机**:reboot
systemctl restart docker

#注意查看网卡信息
:~$ brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c2960060c no ens33
docker0 8000.02427c11f899 no
br0 Link encap:以太网 硬件地址 00:0c:29:60:06:0c
inet 地址:192.168.110.14 广播:192.168.110.255 掩码:255.255.255.0
inet6 地址: fe80::20c:29ff:fe60:60c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 跃点数:1
ens33 Link encap:以太网 硬件地址 00:0c:29:60:06:0c
UP BROADCAST RUNNING MULTICAST MTU:1500 跃点数:1
#广播运行多播
#验证dns解析是否正常
ping www.baidu.com
#网络可能会没有dns解析所以我们需要进行dns的配置

#16.04:
:~$ sudo vim/etc/resolvconf/resolv.conf.d/base
#18.04:
:~$ sudo vim/etc/resolv.conf

#增加内容
nameserver 223.5.5.5
nameserver 114.114.114.114
nameserver 8.8.8.8

#注意如果重启后网络并未生效则
sudo /etc/init.d/networking restart

#1.3 容器创建
#基于ubuntu镜像创建一个容器,网络模式使用none ,启动容器时,挂载本地Linux系统的etc/apt文件
:~$ docker run -itd --net=none --name ubuntu-test1 -v /etc/apt/:/home/etc
ubuntu /bin/bash
5f7b976ddfdf60dbc08cb81569488b70da15bc183d7f21da7030c316cd6ec96b
:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
NAMES
5f7b976ddfdf ubuntu "/bin/bash" 5 seconds ago Up 4 seconds
ubuntu-test1

#2、定制容器ip
#2.1 pipwork软件部署

#安装pipwork
#方法1:
git clone https://github.com/jpetazzo/pipework

#方法2:将软件直接拖入ubuntu虚拟机
#直接解压安装包
:~$unzip pipework-master.zip
#将文件拷贝到bin下
sudo cp pipework-master/pipework /usr/local/bin/

#2.2 定制容器ip
:~$ sudo pipework br0 ubuntu-test1 192.168.110.129/24@192.168.110.2

#2.3 测试效果
#进入容器查看ip地址信息
:~$ docker exec -it ubuntu-test1 /bin/bash
#删除容器下的sources.lis
:~# rm /etc/apt/sources.list
#将本地sources.list 复制过来
:~# cp /home/etc/sources.list /etc/apt/
#进行软件源更新
:~# apt-get update
#安装ping命令
:~# apt-get install inetutils-ping -y
#安装ifconfig命令
:~# apt-get install net-tools -y
宿主机ping命令测试
> ping 192.168.110.14
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值