docker-compose 学习笔记2

来源:互联网 发布:淘宝号怎么升级快 编辑:程序博客网 时间:2024/05/20 13:15

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: bridgevolumes:  nest:    driver:local

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

0 0
原创粉丝点击