若是一个主机上安装了mysql,占用了3306端口,那么若是我再启动一个mysql的话,会报端口冲突,3306端口被占用。mysql
今天遇到了一个问题,某主机docker容器里启动了一个mysql,端口映射到主机的3306端口。因为另外一我的不知情,在主机上又安装了一个mysql,能够正常启动,没有报端口冲突。实际上外部使用的一直是docker里的mysql,并不能访问本地安装的mysql。sql
分析缘由,是因为docker的端口映射是经过iptables转发来实现的。iptables将数据进行转发,并不会像一用程序同样一直在监听某个端口。因此再启动另一个程序的时候,并不会报端口冲突。docker