docker-compose 学习笔记2

本文详细介绍了Docker Compose配置文件的组成及其各部分的功能。包括如何通过services定义服务,networks设置网络配置实现服务间通信,以及volumes管理数据卷确保数据持久化等内容。

compose文件补充说明

compose文件用的是yml格式,docker规定了一些指令,使用它们可以去设置对应的东西,它主要分为3个区域:

  • services:

    服务,在它下面可以定义应用需要的一些服务,每个服务都有自己的名字,使用的镜像、挂载的数据卷、所属的网络、依赖那些服务等等;

  • networks:

    应用的网络,在它下面可以定义应用的名字,使用的网络类型等等;

  • volumes:

    数据卷,在它下面可以定义的数据卷(名字等等),然后挂载到不同的服务下去使用。

networks

网络决定了服务之间以及服务和外界之间如何去通信,在执行docker-compose up的时候,docker会默认创建一个默认的网络,创建的服务也会默认地属于这个默认网络。服务和服务之间,可以使用服务的名字进行通信。也可以自己创建网络,并将服务属于到这个网络之中,这样服务之间可以相互通信,而外界就不能够与这个网络中的服务通信,可以保持隔离性。

version: '2'
services:
  dog:
    image: nginx
    ports:
      - "8080:80"
    networks:
      - "animal"
  cat:
    image: nginx
    ports:
      - "8081:80"
    networks:
      - "animal"
networks:
  animal:
    driver: bridge

进入容器cat,ping dog

下面可以添加一个pig的服务,使用默认网络,来体现自定义网络的属性

version: '2'
services:
  dog:
    image: nginx
    ports:
      - "8080:80"
    networks:
      - "animal"
  cat:
    image: nginx
    ports:
      - "8081:80"
    networks:
      - "animal"
  pig:
    image: nginx
    ports:
      - "8082:80"
    networks:
      - "default"
networks:
  animal:
    driver: bridge

进入容器cat,ping dog,ping pig

Volumes

在compose文件中,还可以指定一些有名字的数据卷,让服务去使用。方法是:在与networks同级的地方,添加volumes,接着是数据卷的名字。

version: '2'
services:
  dog:
    image: nginx
    ports:
      - "8080:80"
    networks:
      - "animal"
    volumes:
      - nest:/mnt
  cat:
    image: nginx
    ports:
      - "8081:80"
    networks:
      - "animal"
    volumes:
      - nest:/mnt
  pig:
    image: nginx
    ports:
      - "8082:80"
    networks:
      - "default"
networks:
  animal:
    driver: bridge
volumes:
  nest:
    driver:local

这里在dog容器的/mnt目录下创建一个文件就可以在cat相应的容器中看到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值