我在本地计算机上使用Docker组成了 Mongodb 服务,并在 docker-compose.yml 中使用语法container_name: mongodb
配置了主机名,然后使用秉承微服务的精神,我也在本地的轻量级嵌入式服务器(例如 Jetty )上启动了 RESTful API服务。
问题是,由于网络不同,本地RESTful API服务无法通过使用本地Docker容器上定义的Mongodb容器名称mongodb
与Mongodb服务进行通信。< / p>
问题:
答案 0 :(得分:0)
关于在Docker
中运行数据库-太好了。您可能想从主机上挂载volumes
来配置数据库以在其中存储数据,因为在容器中存储数据并不总是很方便的。配置通常由环境变量完成,并传递到共享卷中的docker
和配置文件中。
网络本身不应该成为问题,Docker
支持多种网络模式,使您可以与主机进行通信。用于生产目的最简单但不推荐的方法只是使用--network=host
。这样可以防止Docker
创建新的网络,并且容器共享您的localhost
。这意味着您只需使用localhost
作为主机名就可以从容器访问所有服务。
为什么不建议这样做:因为这样可以消除通常在容器中所有localhost网络可用后Docker
授予的保护/隔离级别。