一、简介

Compose是用于定义和运行多容器Docker应用程序的工具,是docker的服务编排工具,主要应用于构建基于Docker的复杂应用,compose通过一个配置文件来管理多个docker容器,适合组合使用多个容器进行开发的场景。

使用compose,可以使用yaml文件配置应用程序的服务。

然后,通过一个命令,可以从配置中创建和启动所有服务。

官网:https://docs.docker.com/compose/overview/

二、使用

compose适用于所有环境:生产,开发,测试以及CI工作流程。

使用compose基本上是一个三步过程:

1. 用dockerfile,或者镜像定义应用程序的环境,以便在任何地方复制。

2. 在docker-compose.yml中定义组成应用程序的服务,以便它们可以在单独的环境中一起运行。

3. 运行docker compose up启动并运行整个应用程序。

五、docker-compose用法
常用选项:
--verbose:输出更多的调试信息
--version:查看compose的版本
-f --file FILE:使用特定的compose模板文件,默认为docker-compose.yml。
-p --project-name NAME 指定项目名称,默认使用目录名称。
常用命令:
build:构建或重建服务
ps:查看已经启动的服务状态       
kill:停止某个服务、杀掉容器       
logs:可以查看某个服务的log、显示容器的输出内容       
port:打印绑定的public port(开放端口)        
pull:拉取服务镜像      
up:启动yml定义的所有服务     
stop:停止yml中定义的所有服务       
start:启动被停止的yml中的所有服务        
kill:强行停止yml中定义的所有服务        
rm:删除yml中定义的所有服务      
restart:重启yml中定义的所有服务        
scale:设置服务的容器数目
run:运行一个一次性命令
 
 YAML简介
        Yaml简介.YAML是一种标记语言,可读性很强。类似于XML数据描述语言,语法比XML简单的多。YAML数据结构通过缩进来表示,连续的项目通过减号来表示,键值对用冒号分割,数组用括号括起来, hash用花括号括起来。
YAML文件格式注意事项:
在缩排中空白字符的数目并不是非常重要,只要相同阶层的元素左侧对齐就可以了(不过不能使用TAB字符);
通常开头缩进2个空格;字符的后面缩进1个空格,比如冒号、逗号、横杆;
支持#注释;
允许在文件中加入选择性的空行,以增加可读性;
docker-compose中YAML常用的字段:

字段

描述

build

dockerfile

context

指定dockerfile文件名

构建镜像上下文路径

image 指定镜像
command 执行命令,覆盖默认命令
container_name 指定容器名称,由于容器名称是唯一的,如果指定自定义名称,则无法scale
deploy  指定部署和运行服务相关配置,只能在Swarm模式使用
environment 添加环境变量
networks 加入网络,引用顶级networks下条目
ports 暴漏端口,与-p相同,但端口不能低于60
volumes 挂载宿主机路径或命名卷在顶级volumes定义卷名称
restart 重启策略,默认no,always|on-failurel|unless-stopped
hostname 容器主机名

================================================================================================

安装docker-compose

一、配置环境

[root@docker ~]# systemctl stop firewalld
[root@docker ~]# iptables -F
[root@docker ~]# setenforce 0

安装docker commpose是在安装好了docker的基础上安装的

安装依赖包

[root@docker ~]# yum install libcurl libcurl-devel libxml2 libxm2-devel pcre-devel zlib-devel lrzsz telnet nmap -y

[root@docker ~]#curl -L \ https://github.com/docker/compose/releases/download/1.21.1/docker-compose- `uname -s`-`uname -m` -o /usr/local/bin/docker-compose
curl: (1) Protocol https not supported or disabled in libcurl
curl: (6) Could not resolve host: Linux-x86_64; 未知的错误

这里报https文件问题,这时上传docker-compose包

二、上传需要的软件包

[root@docker ~]# mkdir docker

[root@localhost docker]# ls
centos-7-x86_64.tar.gz     compose_lnmp-190606.zip     docker-compose        wordpress-4.7.4-zh_CN.tar.gz

[root@docker docker]# unzip compose_lnmp-190606.zip

 三、部署docker-compose

[root@docker ~]# cat centos-7-x86_64.tar.gz | docker import - centos:7                         将镜像导入到docker

[root@docker ~]# docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
centos               7                   c2705e1a484d        2 days ago          589MB

[root@docker ~]# vim docker/compose_lnmp/nginx/nginx.conf

 五、将Wordpress放到wwwroot目录下

[root@docker docker]# mv wordpress compose_lnmp/wwwroot/

[root@docker docker]# cd compose_lnmp/wwwroot/
[root@docker wwwroot]# ls
index.html  index.php  wordpress

将docker-compose加入到/usr/local/bin

[root@docker docker]# chmod +x /usr/local/bin/docker-compose                #加权限

[root@docker compose_lnmp]# docker-compose up -d                               #执行

六、访问测试

docker-compose介绍及部署LNMP的更多相关文章

  1. Docker Compose编排工具部署lnmp实践及理论(详细)

    目录 一.理论概述 编排 部署 Compose原理 二.使用docker compose 部署lnmp 三.测试 四.总结 一.理论概述 Docker Compose是一个定义及运行多个Docker容 ...

  2. Docker Compose 项目打包部署

    Docker Compose 前面我们使用 Docker 的时候,定义 Dockerfile 文件,然后使用 docker build.docker run 等命令操作容器.然而微服务架构的应用系统一 ...

  3. Docker Compose 介绍安装

    Compose介绍 Compose是一个定义和管理多容器的工具,也是一种容器编排工具,前身是Pig,使用Python语言编写.使用Compose配置文件描述多个容器应用的架构,biubiu使用什么镜像 ...

  4. Docker容器(一)——Docker的介绍与部署

    (1).Docker概述 Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,也可以实现虚拟化.容器是 ...

  5. Docker Compose 部署前后端分离应用

    部署前后端分离应用 容器化 Abp 应用 关于 Abp 应用的容器化,其实和普通的 ASP.NET Core 应用差不多,大家可以参考我此前的文章. 唯一需要注意的是:因为 Abp 解决方案中有多个项 ...

  6. Docker(四):Docker 三剑客之 Docker Compose

    前两篇文章我们介绍了 Dockerfile 的使用Docker(二):Dockerfile 使用介绍,我们知道使用一个 Dockerfile 模板文件可以定义一个单独的应用容器,如果需要定义多个容器就 ...

  7. 一文掌握Docker Compose

    目录 Docker Compose介绍 Docker Compose安装 Docker Compose基本示例 1.基本文件及目录设置 2.创建一个Dockerfile 3.通过docker-comp ...

  8. 使用 Docker Compose 快速构建 TiDB 集群

    本文档介绍如何在单机上通过 Docker Compose 快速一键部署一套 TiDB 测试集群.Docker Compose 可以通过一个 YAML 文件定义多个容器的应用服务,然后一键启动或停止. ...

  9. 使用 docker compose 安装 tidb

    目标 : 单机上通过 Docker Compose 快速一键部署一套 TiDB 测试集群 前提条件: 1.centos版本在7.3 以上 2.安装git 3.安装docker Docker versi ...

随机推荐

  1. 题解 CF409A 【The Great Game】

    题目传送门. 思路: 首先我们定义\(2\)个字符串,分别存放 TEAM 1 与 TEAM 2 的出招顺序.接着再定义\(2\)个变量,存放 TEAM 1 与 TEAM 2 的分数. string s ...

  2. C++构造函数和重载函数运算符如何区分

    构造函数和重载函数运算符如何区分: class Distance { private: int feet; int inches; public: Distance(){ feet = ; inche ...

  3. JS高级---数组和伪数组

    数组和伪数组  伪数组和数组的区别 真数组的长度是可变的 伪数组的长度不可变 function f1() { var sum = 0; for (var i = 0; i < arguments ...

  4. 数组的concat连接

    let arr1 = [1,3,5],arr2 = [2,32,78],arr3 = [];arr3 = arr1.concat(arr2);// arr1 = [1,3,5] arr2 = [2,3 ...

  5. QQ第三方登录(一)

    要实现QQ第三方登陆 这就需要QQ方面的支持. 首先  我们需要在QQ开发者网站上注册,https://connect.qq.com/index.html 登陆之后点击应用管理,正常情况下我们是未提交 ...

  6. lamda表达式的两种写法

    public class Test{ public synchronized void test1(){ System.out.println("test1 start........... ...

  7. 题解 【洛谷P1115】最大子段和

    这是一道枚举经典题. 本题有三种做法,各位需要根据每个题的数据范围来决定自己用哪种方法. 本题解中统一设最大和为Max. 方法一. 枚举子序列,从起点到终点求和.时间复杂度:O(n^3) 我们可以枚举 ...

  8. Postgresql 教程

    Official 教程 关闭postgresql服务 PostgreSQL帐号 1. PostgreSQL 用户帐号和操作系统用户帐号是不同的,系统用户帐号是postgres. sudo -u pos ...

  9. 我写的UI自动化框架

    ---------------------------------------------------------------------------------------------------- ...

  10. LOJ 劳孙肉饼

    题目链接 XRRRRQAQ 去学文化的的样子太萌啦!!! XRRRRQAQ 在课上太无聊,以至于吃起了劳孙(你不用知道这是什么) 显然劳孙是一个 N * M 的肉饼(即N行 M 列) XRRRRQAQ ...