Docker网络模式none
none网络模式,是一种自由度非常高的网络模式,我们可以最大化的自定义我们想要的网络
1.网桥软件部署
sudo apt-get install bridge-utils -y
2.桥接网卡配置
编辑Ubuntu网卡信息文件,对源文件进行备份
sudo cp /etc/network/interfaces /etc/network/interfaces-old
sudo vim /etc/network/interfaces
在后面添加内容
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 //(要与本机的一致,如果本机是ens38就写ens38)
重启网络服务
service networking restart
3.docker服务配置
3.1.配置docker文件
sudo vim /etc/default/docker
3.2.创建服务依赖文件
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
3.3.重启docker
第一次配置的时候需要重启linux虚拟机:reboot
systemctl restart docker
4.配置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
5.容器创建
基于ubuntu镜像创建一个容器,网络模式使用none ,启动容器时,挂载本地Linux系统的etc/apt文件
docker run -itd --net=none --name ubuntu-test1 -v /etc/apt/:/home/etc ubuntu /bin/bash
5.1.定制容器ip
安装pipwork
git clone https://github.com/jpetazzo/pipework
将文件拷贝到bin
下:
sudo cp pipework/pipework /usr/local/bin/
设置容器的ip
地址和容器的网关,该ip地址要与宿主机同网段,网关为宿主机的网关(@后的内容):
sudo pipework br0 ubuntu-test1 192.168.110.129/24@192.168.110.2
6.进入容器查看·ip·地址信息
docker exec -it ubuntu-test1 /bin/bash
删除容器下的sources.list
文件:
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 192.168.110.104