1. Docker Compose简介与Docker Stack类
- Docker Compose与Docker Stack类似,本篇文章主要阐述Docker Compose以单引擎模式(Single-Engine Mode)进行多容器应用的部署管理。(Docker Stack用于docker swarm集群编排不在本篇记录)
- 单引擎(Single-Engine)模式指不包含在任何Swarm中的Docker节点,如果加入了Swarm集群,则切换为Swarm模式。
2. Docker Compose
2.1 安装 Docker Compose
Docker Compose是Docker的工具,并没有集成到Docker内,因此,需要在安装了Docker之后再安装Docker Compose。
2.2 Compose
Docker Compose通过一个声明式的配置文件描述整个应用,从而简易部署的工具。这个文件是以yaml格式编写的(yaml是json的一个子集,因此也可以使用json)。
- Docker Compose模式使用的文件名是docker-compose.yml(也可以使用-f参数指定其他文件)。
- docker-compose.yml的一个简单样式(复制过去用不了的~):
```yaml
version: “3”
services:
nginx:
build: .
command: python asb.py
networks:
- counter-net ports:
- “80:80”
- “443:443” volumes_from:
- data: volume source: counter-vol target: /webroot redis: image: redis:3.2.3 networks:
- counter-net ports:
- “6379:6379”
networks: counter-net:
volumes: counter-vol: ```
- 前台启动命令
docker-compose up &
可以看到启动过程打印出来(docker-compose up -d
后台运行);停止命令docker-compose down
对应启动时是前台或后台运行,表现出具体过程打印或不打印。 - 需要注意的是,卷(volume,将容器内的代码目录映射到物理机)镜像是不会再停止、删除容器时删除。有助于下次启动过程减少时间。
- 查看docker compose服务内运行的进程(由于共享内核,进程池等机制,docker容器内部运行的进程必须依托到物理机,故可以在物理机看到容器内部的进程),命令
docker-compose top
可以查看到。