Docker Compose 可以用于部署和管理大量的服务器容器
目录
前言
Docker Compose 是一个需要在 Docker 主机上进行安装的 Docker 容器编排外部工具。其并不是通过脚本或各种冗长的 Docker 命令来将应用组件组织起来,而是通过一个声明式的配置文件描述整个应用,然后通过一条命令完成应用部署。部署成功后,还可通过一系列简单命令实现对其完整生命周期的管理。
一、compose属性简述
1.compose文件简介
- Docker Compose 使用 YAML 文件来定义服务。官方推荐的默认文件名为 compose.yml ,但同时也支持 docker-compose.yml。
- Compose 文件通常定义一个项目的所有服务,通常新建项目名称的存放目录,将项目所需的镜像、微服务的Dcokerfile文件放入其中,在该目录中新建compose文件。
2.compose文件属性
Compose文件中包含 6 个顶级属性:version、services、networks、volumes、configs 和secrets,及很多的它们下面所包含的属性。
2.1 version
version是一个顶级属性,但已经过时,不需要在compose文件中声明。
2.2 networks
networks是一个顶级属性,用于定义创建的应用所使用的网络,其下包含的第一级属性为网络名称,可以自定义名称。
networks:
app_bridge:
name: appBGnet # 网络名称,可以自定义
#name:networks下第一级网络属性,设置的name属性,网络名称为当前设置值。
driver: bridge
#driver:网络驱动,缺省为Bridge。
attachable: true
#attachable:该属性设置为 true的话,除了当前 compose 中定义的服务外,其它独立容器也可以
连接到此网络,并能与该网络中的服务及也连接到该网络的其它独立容器通信。缺省状态为false
2.3 volumns
volumes 作为一个顶级属性,用于定义和创建应用中所使用到的所有 volume。其下包含
的第一级属性即为 volume 的卷标,这个卷标可以随意命名。这个卷标所代表的是当前 Docker主机中的目录,至于该目录的具体位置,是由系统自动分配的。
2.4 services
services 是一个顶级属性,用于定义一个应用中所包含的服务。Docker Compose 会将每
个服务部署在各自的容器中。其下包含的第一级的属性即为服务名称,这个名称可以根据服务内容随意命名。而在服务名称下还可包含很多的属性。
2.4.1 build
用于指定Dockerfile的路径,Dockerfile用于闯将当前服务镜像的。如下所示:
build:
context: ./ # 当前Dockerfile文件路径,也可以为绝对路径。
dockerfile: myDockerfile # Dockerfile文件名称
2.4.2 image
用于指定当前服务使用的镜像,可以为本地镜像或者镜像仓库镜像。
如果设置了 build,此时再设置的 image 属性即为构建出的镜像的名称与 Tag。
2.4.3 container_name
用于指定容器名称,不设置该属性,容器名称缺省为当前 compose文件所在目录名_ 服务名称。
2.4.4 ports
用于指定暴露的端口号
ports:
- 80:80 # 绑定容器的 80 端口到主机的 80 端口
- 9000:80 # 绑定容器的 80 端口到主机的 9000 端口
- 443 # 绑定容器的 443 端口到主机的任意端口,容器启动时随机分配绑定的主机