主题:Docker Compose
1.什么是docker compose
允许用户通过一个单独的 docker-compose.yml
模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)
2.如何使用docker compose
在Compose
中有两个重要的概念:
- 服务 (
service
):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。 - 项目 (
project
):由一组关联的应用容器组成的一个完整业务单元,在docker-compose.yml
文件中定义。
Compose
的默认管理对象是项目,也就是通过docker-compose.yml定义的一组服务集合,通过一些命令来对项目中的一组容器进行便捷地生命周期管理。
运行 compose 项目
$ docker-compose up -d
3.docker compose基本使用
3.1 启动服务
在创建好docker-compose.yml
文件后,可以通过下面这个命令将文件中定义的容器都启动起来,在docker compose中我们更习惯于将每一个容器叫做service。
docker-compose up
命令后会自动接一个默认值-f docker-compose.yml
,也就是默认是使用docker-compose.yml文件的。我们也可以给文件起名为docke-test.yml
,这样在使用时指定文件名,但是为了符合规范,还是统一为docker-compose.yml
。
3.2 查看服务状态
docker-compose ps
要是想要查看所有service的状态可以使用-a参数:
docker-compose ps -a
3.3 停止或删除服务
如何停止已经运行的services呢,可以使用以下两个命令
docker-compose stop
docker-compose down
3.4 进入服务
docker-compose exec mysql bash
3.5 查看服务输出日志
docker-compose logs
4. Compose模板文件
模板文件是使用 Compose
的核心。
默认的模板文件名称为 docker-compose.yml
,格式为 YAML 格式。
version: "3"
services:
webapp:
image: examples/web
ports:
- "80:80"
volumes:
- "/data"
environment
设置环境变量。你可以使用数组或字典两种格式。只给定名称的变量会自动获取运行 Compose 主机上对应变量的值,可以用来防止泄露不必要的数据。
environment:
RACK_ENV: development
SESSION_SECRET:
environment:
- RACK_ENV=development
- SESSION_SECRET
5. Compose命令
命令对象与格式
对于 Compose 来说,大部分命令的对象既可以是项目本身,也可以指定为项目中的服务或者容器。如果没有特别的说明,命令对象将是项目,这意味着项目中所有的服务都会受到命令影响。
执行 docker-compose [COMMAND] --help
或者 docker-compose help [COMMAND]
可以查看具体某个命令的使用格式。
docker-compose
命令的基本的使用格式是:
docker-compose [-f=<arg>...] [options] [COMMAND] [ARGS...]
命令选项
-f, --file FILE
指定使用的 Compose 模板文件,默认为docker-compose.yml
,可以多次指定。-p, --project-name NAME
指定项目名称,默认将使用所在目录名称作为项目名。--verbose
输出更多调试信息。-v, --version
打印版本并退出。
稍微有点复杂了,明后天要找时间补课啦~~