Docker Compose 的安装与运行
目录
(2)编写docker-compose.yml 文件,无需指定目录
(3)新建docker-compose.yml文件,编写内容
(4)保存退出,运行docker-compose.yml文件
一. 前言
Docker 官网 : https://docs.docker.com/compose/
1. 什么是 Docker Compose
(1)Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。
(2)Docker Compose 的前生是Fig , 是一个定义及运行多个Docker容器的工具。
(3)在使用 Docker Compose 时,只需要在一个配置文件中定义多个Docker容器,然后使用一条命令即可启动这些容器。Docker Compose会通过解析容器之间的依赖关系按先后顺序启动所定义的容器。
2. Docker Compose 相关理论
(1)Docker-Compose允许用户通过一个默认名称为docker-compose.yml的模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目,使用.yml或.yaml作为文件扩展名。该文件是一个定义服务、网络和卷的YAML文件。
(2)Docker-Compose运行当前目录下的所有文件(docker-compose.yml,extends文件或环境变量文件等)组成一个项目,若无特殊指定项目名即为当前目录名。一个项目当中可包含多个服务,每个服务中定义了容器运行的镜像、参数、依赖。一个服务当中可包括多个容器实例。
(3)Docker-Compose标准模板文件应该包含version、services、networks三大部分,最关键的是services和networks两个部分。
3. 案例实验环境
主机 | 使用镜像 | 主机名/IP地址 | 主要软件 |
服务器 | nginx:1.19.7-alpine | registry-server/192.168.182.16 | Docker-ce |
二 . 安装docker-compose
下载站点:Releases · docker/compose · GitHub,在该页面可以找到不同系统中需要的安装文件。
查询上图中被选中的Linux环境下的docker-compose的下载链接地址为:
https://github.com/docker/compose/releases/download/1.29.0/docker-compose-Linux-x86_64
(1) 下载安装文件
为了方便后期操作,可将上述文件通过curl在linux中直接保存到 /usr/local/bin 目录下:
[root@docker-server ~]# curl -L https://github.com/docker/compose/releases/download/1.29.0/docker-compose-Linux-x86_64 >/usr/local/bin/docker-compose
# 使用-L参数,curl就会跳转到新的网址。 > 表示覆盖写
(2)修改文件权限
[root@registry-server bin]# chmod 777 docker-compose # 赋予docker-compose 执行权限
(3)查看docker-compose版本信息
[root@registry-server bin]# docker-compose version # 查看版本
三. 编写文件运行
(1)使用YAML编写注意事项:
# 1. 代码缩进表示层级关系。
# 2. 对象键值对使用冒号结构表示 key: value,冒号后面要加一个空格。
# 3. 开头缩进两个空格。
# 4. 如果包含特殊字符,要使用单引号('')引起来。
# 5. 不支持使用制表符Tab键缩进,需要使用空格缩进。
# 6. 用 # 号注释。
(2)编写docker-compose.yml 文件,无需指定目录
[root@registry-server ~]# mkdir docker-compose # 新建目录docker-compose
(3)新建docker-compose.yml文件,编写内容
定义了两个nginx站点(web1和web2),这里为了方便观察空格缩进关系,我将表示一个空格替换成红色&。(注意冒号后加空格)
version: "3.0"
services:
&web1: # 服务的名称(可自定义)
&&image: nginx:1.19.7-alpine #当前服务所用的镜像
&&ports: # 指定端口映射
&&&- "80:80"
&web2: # 定义第二个服务 :web2
&&image: nginx:1.16
&&ports:
&&&- "8080:80" # 宿主机8080映射容器80端口
(4)保存退出,运行docker-compose.yml文件
[root@docker-server docker-compose]# docker-compose -f docker-compose.yml up -d
# -f :指定yml文件名。 -d :后台运行