文章目录
一、Docker Compose理论知识
1.1、Compose工具的由来
Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。
使用前面介绍的Dockerfile文件可以很容易定义一个单独的应用容器。然而在日常开发工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况。
例如要实现一个 Web 项目,除了 Web 服务容器本身,往往还需要再加上后端的数据库服务容器;再比如在分布式应用一般包含若干个服务,每个服务一般都会部署多个实例。
如果每个服务都要手动启停,那么效率之低、维护量之大可想而知。这时候就需要一个工具能够管理一组相关联的的应用容器,这就是Docker Compose。
-
Compose有2个重要的概念:
- 项目(Project):由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义。
- 服务(Service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。
1.2、docker-compose.yml文件的常用字段
具体使用会在下面的docker-compose部署中展示:
1.3、Docker Compose常用命令
- 基本的使用格式
docker-compose [options] [COMMAND] [ARG...]
//docker-compose选项:
--verbose输出更多调试信息
--version打印版本并退出
-f, -file FILE使用特定的compose模板文件,默认为docker-compose.yml
-p, --project-name NAME指定项目名称,默认使用目录名称
//举例:
docker-compose -f docker-compose.yml up -d
二、安装Docker Compose工具
2.1、安装docker环境
docker 部署在这里不做介绍,有需要的可以看我这篇博客:Docker之入门初了解、部署与镜像加速、网络优化
2.2、下载docker-compose安装包
加载官方源速度会慢一些
curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
2.3、部署docker-compose
//可以在任何目录下使用compose命令
cp -p docker-compose /usr/local/bin
[root@localhost /]# docker-compose -v
docker-compose version 1.21.1, build 5a3f1a3
- 1、首先创建一个总目录,再根据下图配置相关内容。
mkdir /root/compose_nginx
cd /root/compose_nginx
tree命令没有:可以 yum install -t tree 安装即可
##创建nginx目录(3个,源码包、Dockerfile、run.sh)
mkdir nginx
cd nginx/
//拷贝nginx-1.12.0源码包到nginx/中
vi run.sh
#!/bin/bash
/usr/local/nginx/sbin/nginx
vi Dockerfile
nginx的Dockerfile 文件详情可参考我的上篇博客:nginx镜像的Dockerfile文件
#创建yml文件
vi /root/compose_nginx/docker-compose.yml
创建 wwwroot 站点目录
cd /root/compose_nginx
mkdir wwwroot
cd wwwroot/
vi index.html
<h1>this is nginx web!</h1>
使用docker-compose命令执行,-f 指向文件
等待安装即可。
2.4、验证
查看镜像和容器显示创建成功,我们可以访问服务。
打开浏览器访问nginx