一、简介
1、Compose 面向多个容器服务进行管理。
2、docker-compose.yml 文件,这个是 Compose 使用的主模板文件。默认使用这个模板。
3、Compose 项目由 Python 编写,实现上调用了 Docker 服务提供的 API 来对容器进行管理。因此,只要所操作的平台支持 Docker API,就可以在其上利用 Compose 来进行编排管理。
二、命令
1、命令要在模板文件的根目录下执行
2、使用Compose 基本上分为三步:
1.Dockerfile 定义应用的运行环境 2.docker-compose.yml 定义组成应用的各服务 3.docker-compose up 启动整个应用
3、docker-compose up(启动模板文件中的多个容器)
该命令十分强大,它将尝试自动完成包括构建镜像,(重新)创建服务,启动服务,并关联服务相关容器的一系列操作。
docker-compose up (前台)根据build好的镜像起一个容器
docker-compose up -d(后台)
docker-compose up --build 重新构建,然后再用新的镜像起一个容器
docker-compose up --build -d
4、docker-compose build(产生多个镜像,并不是多个镜像都塞到一起)
构建(重新构建)项目中的镜像;只会进行build而不会进行启动容器;
三、模板文件
version: '3' //docker-compose版本号,要匹配docker的版本号
services:
backend: //这个名字是用户自己自定义,它就是服务名称。
build: //build指令,会根据dockerfile来构建镜像
context: . //指定Dockerfile所在路径
dockerfile: Dockerfile //Dockerfile文件名
container_name: ards_backend
restart: always //指定容器退出后重启
ports:
- 8083:8083
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /tmp:/tmp
#可以用数据卷
#- mysql:/var/lib/mysql
1、注意:每个服务都必须通过 image 指令指定镜像或 build 指令(需要 Dockerfile)等来自动构建生成镜像。
2、服务除了可以基于指定的镜像,还可以基于一份 Dockerfile;在使用 up 启动之时执行构建任务,这个构建标签就是 build;
3、image:指定为镜像名称或镜像 ID。如果镜像在本地不存在,Compose 将会尝试拉取这个镜像。
4、build:指定 Dockerfile
所在文件夹的路径(可以是绝对路径,或者相对 docker-compose.yml 文件的路径)。 Compose
将会利用它自动构建这个镜像,然后使用这个镜像。
这个生成的镜像名是当前目录名+自己定义的服务名,如ards_backend
5、使用docker-compose up启动容器后,这些容器都会被加入[app]_default网络中。