Docker Compose网络系列--网络的配置

这篇具有很好参考价值的文章主要介绍了Docker Compose网络系列--网络的配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

原文网址:Docker Compose网络系列--网络的配置_IT利刃出鞘的博客-CSDN博客

简介

说明

        本文介绍Docker Compose的网络的配置。

官网网址

https://docs.docker.com/compose/networking/

compose的默认配置

        默认情况下,Compose会为应用创建一个网络,服务(docker-compose.yaml中的services项)的每个容器都会加入该网络中。这样容器就可被该网络中的其他容器访问,而且该容器还能以服务名称作为hostname被其他容器访问。

默认的网络

例如, 假设有一个项目,目录名myapp, docker-compose.yml 配置如下:

version: "3"
services:
  web:
    build: .
    ports:
      - "8000:8000"
  db:
    image: postgres
    ports:
      - "8001:5432"

当执行 docker-compose up 的时候。会发生以下事情:

  1. 会创建一个名字是 myapp_default的网络(networks)
  2. web这个容器会加入到 myapp_default网络中,并且在网络中的名称为:web 。
  3. db这个容器会加入到 myapp_default网络中,并且在网络中的名称为:db。

        这里每个容器都能通过应用名找到对方,例如,web容器可以通过 postgres://db:5432 来使用 Pg数据库。

        上面例子有一个注意点就是端口号,注意区分HOST_PORT和CONTAINER_PORT,以上面的db为例:8001 是宿主机的端口,5432(postgres的默认端口) 是容器的端口,当容器之间通讯时, 是通过 CONTAINER_PORT 来连接的。这里有宿主机端口,那么容器就可以通过宿主机端口和外部应用连接。

更新容器

        当服务的配置发生变更时,可使用docker-compose up命令更新配置。

        此时,Compose会删除旧容器并创建新容器。新容器会以不同的IP地址加入网络,名称保持不变。任何指向旧容器的连接都会被关闭,容器会重新找到新容器并连接上去。

links

        默认情况下,服务之间可使用服务名称相互访问。links允许定义一个别名,从而使用给别名访问其他服务。

version: '2'
services:
  web:
    build: .
    links:
      - "db:database"
  db:
    image:postgres

这样Web服务就可使用db或database作为hostname访问db了。

指定自定义网络

概述

        有时默认的网络配置满足不了需求,可使用一级配置中的networks选项自定义网络。

        networks选项允许创建更复杂的网络拓扑并指定自定义网络驱动和选项。不仅如此,还可使用networks将服务连接到外部创建的而且不是由Compose管理的网络。

        每个service 配置下也可以指定networks配置,来指定一级配置的网络。

示例

        下边的配置中,proxy与db服务隔离(不能通讯,因为不在一个网络中),app服务可与两者通信。使用networks命令,可方便实现服务间的网络隔离与连接。

version: '2'
services:
  proxy:
    build: ./proxy
    networks:
      - front
  app:
    build: ./app
    networks:
      - front
      - back
  db:
    image: postgres
    networks:
      - back
networks:
  front:
    drvier: custom-driver-1
  back:
    driver: custom-driver-2
    driver_opts:
      foo: "1"
      bar: "2"

配置默认网络

除自定义网络外,也可配置默认网络。不配置的话,默认是使用:bridge。

示例

        下边的配置中,将应用的默认网络指定为一个自定义网络(custom-driver-1)。

version: '2'
services:
  web:
    build .
    ports:
      - "8000:8000"
  db:
    image: postgres
networks:
  default:
    driver:custom-driver-1

指定一个已经存在的网络 

        如果多个容器不在同一个配置中(不在一个应用里),也可以进行网络通信。方法是:

第1步:

第2步:使用external选项。方法如下:

services:
  # ...
networks:
  default:
    name: my-pre-existing-network
    external: true

或者:文章来源地址https://www.toymoban.com/news/detail-459154.html

services:
  # ...
networks:
  default:
    external:
      name: my-pre-existing-network

到了这里,关于Docker Compose网络系列--网络的配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Docker_安装使用_容器镜像_Docker-compose_常用指令_网络配置

    相关概念 微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦。 分布式系统中,依赖的组件非常多,不同组件之间部署时往往会产生一些冲突。 在数百上千台服务中重复部署,环境不一定一致,会遇到各种问题。 Docker解决依赖的兼容问题: Docker允

    2024年02月02日
    浏览(58)
  • Docker系列--网络的配置

    原文网址:Docker系列--网络的配置_IT利刃出鞘的博客-CSDN博客 说明 本文介绍Docker的网络的配置。 官网网址 https://docs.docker.com/engine/reference/commandline/network/ Docker启动之后,系统中会产生一个名为docker0的虚拟网桥,会默认创建三个网络:bridge、host、none。 网络模式 简介 bridge 为

    2024年02月07日
    浏览(80)
  • 【Docker系列】在 Linux 上安装 Docker Compose 的简明步骤

    💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老 导航 檀越剑指大厂系列:全面总

    2024年04月16日
    浏览(31)
  • 【docker系列】docker-compose安装elasticsearch和kibana

    大家好,我是walker 一个从文科自学转行的程序员~ 爱好编程,偶尔写写编程文章和生活 欢迎关注公众号【 I am Walker 】,回复“电子书”,就可以获得200多本编程相关电子书哈~ 我的gitee:https://gitee.com/shen-chuhao/walker.git 里面很多技术案例! (1)、 [root@localhost docker]# mkdir es (

    2023年04月08日
    浏览(61)
  • Dockerfile与docker-compose容器编排(Docker系列第3章,共3章)

    不同的组件需要不同的docker配置(例如容器卷,端口,环境变量等),使用你懂得工具看hub.docker.com官方手册。 不要死记硬背,因为这种东西不是天天要写,过段时间就忘了,很容易引起挫败感。 Dockerfile或者Docker-compose的编写,可以安装一些编辑器插件辅助编写。 非官方中

    2024年04月15日
    浏览(45)
  • Docker Compose的常用命令与docker-compose.yml脚本属性配置

    注意:需要在docker-compose配置文件同目录下执行命令 不然提示如下: 下面命令可以输出 web服务 5000 端口所绑定的公共端口 会优雅地停止服务,即发送 SIGTERM 信号给容器,等待一段时间(默认为 10 秒)让容器执行清理操作,然后再发送 SIGKILL 信号强制关闭容器。这样可以确保

    2024年02月15日
    浏览(47)
  • Docker Compose 配置环境变量

    在 Docker Compose 中, 可以通过 environment 字段来设置环境变量. 可以在 docker-compose.yml 文件中的服务定义中添加以下行来设置环境变量: 在这个例子中, myservice 服务的环境变量 MY_VAR 的值被设置为 myvalue. 可以根据需要添加多个环境变量. 如果想要从一个 .env 文件中加载环境变量, 可

    2024年03月12日
    浏览(45)
  • nacos docker compose安装配置

    docker-compose.yml nacos_config数据库安装文件

    2024年02月09日
    浏览(43)
  • MySQL docker compose安装配置

    docker-compose.yml confmy.cnf

    2024年02月09日
    浏览(44)
  • PostgreSQL docker compose安装配置

    docker-compose.yml如下: db\\01-init.sh如下

    2024年02月09日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包