docker容器、虚拟机、宿主机之间的网络配置

目前安装,本地电脑(windows10)-vmware虚拟机(centos 7)-docker容器

网络地址

想在本地电脑上访问到docker容器内服务,需要三者之间互相ping通,涉及3个IP地址
1、本地电脑IP,也即宿主机IP。通过在本地cmd采用ipconfig命令查看
2、虚拟机IP,也即宿主服务器IP。通过在虚拟机上ip addr命令查看
3、docker容器IP,通过在虚拟机上ip addr命令查看
需要注意一点,在本地CMD输入ipconfig后显示的虚拟机IP,并不是真正的IP地址,而且主机的IP地址会不断变化,网线或者WLAN。
在这里插入图片描述
上图172.17.0.1为容器IP,马赛克部分为虚拟机IP

网络是否通

访问服务时,需要本地、虚拟机、容器三者两两直接都ping的通
本地ping虚拟机:在cmd中,ping 虚拟机IP
本地ping容器
虚拟机ping容器:在虚拟机中,ping 容器IP
虚拟机ping本地
容器ping本地: 在容器中,ping 本地IP
容器ping虚拟机
上述有任何一项不通,就需要配置网络

一些错误及网络配置

1、Job for docker.service failed…docker启动失败,docker只有client,没有server。
解决:
打开vi /etc/sysconfig/selinux,将selinux 属性值改为disabled,原来是enforing。
2、“net/http: TLS handshake timeout”错误,docker pull镜像太慢
解决:
打开/etc/docker/,若没有daemon.json文档,则新建一个
在这里插入图片描述
3、docker容器与centos虚拟机连接,给docker容器分配静态IP
打开/etc/sysconfig/network-scripts/,打开容器的网络,ifcfg-e…命名的,
在这里插入图片描述
上图中1处改为static,再添加下列四项
IPADDR=虚拟机的IP
NETMASK=255.255.255.0
GATEWAY=虚拟机IP.2 (将虚拟机IP的最后一位变为2,下同)
DNS1=119.29.29.29
然后重启虚拟机网络,service network restart
试试虚拟机ping容器,与容器ping虚拟机。

4、本机与虚拟机网络连接
vmware安装centos虚拟机时,选择的是NAT方式。
打开vmware,依次打开编辑-虚拟网络编辑器
在这里插入图片描述
选择VMnet8,点击NAT设置,修改需要管理员权限
在这里插入图片描述
将网关IP设置成与虚拟机IP同一网段,可为虚拟机IP.2
在本机CMD窗口,ping 虚拟机IP
在虚拟机窗口,ping 本机IP
若还是不行,在本机打开网络适配器设置,选择VMnet8网络,
在这里插入图片描述
接着右键属性-Internet协议版本4-
在这里插入图片描述
使用下面的IP地址,将IP地址设置为 虚拟机IP.1
5、本机与docker容器连接
两者互相都ping不通时,以管理员身份打开CMD,运行
route add -p 172.17.0.0 mask 255.255.0.0 虚拟机IP
将docker容器的内部端口映射到本地的端口

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章