我在我的开发环境中使用Docker for Mac。
问题是我们本地网络中的任何人都可以访问我的机器上运行的服务器和MySQL数据库。当然,他们需要知道凭证,他们可能会蛮力。
例如,如果我的本地IP为10.10.100.22
,则有人可以通过键入https://10.10.100.22:8300
或数据库mysql -h 10.10.100.22 -P 8301 -u root -p
(端口8300
映射到docker {{来访问我的本地站点1}},端口443
映射到docker 8301
)。
目前,我使用Mac防火墙并阻止Docker使用的3306
的传入连接。它有效,但我不确定这是否是最佳方法。
更新
防火墙的问题在于您必须与团队中的所有开发人员协调。我希望在Vagrant https://www.vagrantup.com/docs/networking/private_network.html中使用与私有网络相同的Docker配置来实现我的目标。
限制访问本地网络中的docker dev环境的最佳方法是什么?
答案 0 :(得分:1)
为我的问题找到了非常简单的解决方案。在docker-compose.yml
代替,
services:
mysql:
image: mysql:5.6
environment:
- MYSQL_ROOT_PASSWORD=
- MYSQL_DATABASE=test
ports:
- "8301:3306"
打开本地网络的8301
端口。我做了以下,
services:
mysql:
image: mysql:5.6
environment:
- MYSQL_ROOT_PASSWORD=
- MYSQL_DATABASE=test
ports:
- "127.0.0.1:8301:3306"
仅将8301
端口绑定到docker host 127.0.0.1
,并且该端口不能在主机外部访问。