docker使用出现的问题

材料

1、mac版本:Mojave 10.14.1
2、docker版本:Version 18.06.1-ce
3、virtual box版本:5.2.22
当前virtualbox版本不支持mac 10.14,仅支持到10.13。

问题

使用docker和virtualbox建立swarm,并在虚拟机上的machine上建立服务,访问服务时被拒绝。不建立swarm,仅仅初始化swarm,再在虚拟机上建立服务,此时服务访问正常。

分析

原因可能是材料中版本不支持的问题,因为不建立swarm访问正常。在docker的user guide中,提示我们建立swarm后,访问machine中的服务,将要通过负责负载平衡的ingress network,这一网络在使用前需要确保两个端口时开放的,如下所示。

Keep in mind that to use the ingress network in the swarm, you need to have the following ports open between the swarm nodes before you enable swarm mode:

Port 7946 TCP/UDP for container network discovery.
Port 4789 UDP for the container ingress network.

而当我使用端口扫描工具对machine进行扫描时,只能扫描到如下端口:

Open TCP Port: 	22     		ssh
	 Open TCP Port: 	2376
	 Open TCP Port: 	2377
	 Open TCP Port: 	7946

由此可见,缺少支持负载平衡的ingress network的4789端口。在machine中手动添加(linux下使用iptables和iptables-save)建立开放4789端口的规则,再次扫描端口仍旧无效。并且通过观察发现,没有将machine加入swarm前,未扫描出7946端口,该端口在machine加入swarm后扫描出现。因此,可以认为这两个端口应该随着加入swarm自动打开,可能因为前面所说版本不支持的问题,导致4789端口未能打开。下一个支持mac10.14版本的virtualbox中,再进行测试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值