您的位置:首页 > 运维架构 > Docker

docker-compose 学习笔记2

2017-01-06 16:02 495 查看

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相应的容器中看到
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: