分享好友 资讯首页 频道列表

云计算核心技术Docker教程:docker-compose添加网络

2021-01-05 18:005280

默认情况下组合设置一个网络应用程序。每个容器的服务连接默认网络和网络上,既可通过其他容器,并发现他们在一个主机名与容器名称相同。

为应用程序的网络提供一个基于“项目名称”的名称,该名称基于其所在目录的名称。您可以使用--project-nameflag 或COMPOSE_PROJECT_NAME环境变量覆盖项目名称。

例如,假设您的应用程序位于名为的目录中myapp,并且您的docker-compose.yml样式如下所示:

version: "3.9"

services:

      web:

          build: .

          ports:

               - "8000:8000"

     db:

        image: postgres

        ports:

               - "8001:5432"

运行时docker-compose up,将发生以下情况:

myapp_default创建一个名为的网络。

容器是使用web的配置创建的。它myapp_default以名称加入网络 web。

容器是使用db的配置创建的。它myapp_default以名称加入网络 db。

从Compose文件格式2.1开始,覆盖网络始终创建为 attachable,并且这是不可配置的。这意味着独立容器可以连接到覆盖网络。

在撰写文件格式3.x中,您可以选择将attachable属性设置为false。

现在,每个容器都可以查找主机名web或db获取相应容器的IP地址。例如,web的应用程序代码可以连接到URLpostgres://db:5432并开始使用Postgres数据库。

要注意区分是很重要的HOST_PORT和CONTAINER_PORT。在上面的示例中,对于db,HOST_PORTis是8001,容器端口为 5432(postgres默认)。联网的服务到服务通信使用CONTAINER_PORT。当HOST_PORT定义,服务以及虫群外部访问。

在web容器内,您的连接字符串db看起来像 postgres://db:5432,而在主机上,连接字符串看起来像postgres://{DOCKER_IP}:8001。

反对 0
举报 0
收藏 0
打赏 0
评论 0
2026云计算新图景:混合AI、多云战略与成本优化引领变革浪潮
2026云计算新图景:混合AI、多云战略与成本优化引领变革浪潮

0评论2026-01-061453

2025量子科技和产业大会:前沿成果闪耀,量子产业迈向新征程
2025量子科技和产业大会:前沿成果闪耀,量子产业迈向新征程

0评论2025-11-262557

AI浪潮下企业转型陷两难,青云科技“渐进式创新”破局有招
AI浪潮下企业转型陷两难,青云科技“渐进式创新”破局有招

0评论2025-11-202989

谷歌入局私有云计算:与苹果共探手机AI隐私保护新路径
谷歌入局私有云计算:与苹果共探手机AI隐私保护新路径

0评论2025-11-131111

Aqara Space重庆旗舰店启幕 以科技美学赋能西南空间智能新体验
Aqara Space重庆旗舰店启幕 以科技美学赋能西南空间智能新体验

0评论2025-10-312159

华为擎云智慧能源方案亮相煤炭展:以科技守护煤炭行业安全与发展
华为擎云智慧能源方案亮相煤炭展:以科技守护煤炭行业安全与发展

0评论2025-10-312784