一、简介

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. 常见通用框架的理解(Redis,Zookeeper,Thrift)

    redis 主要功能是内存版的Hashta zookeeper 主要功能是分布式中的全局变量. thrift  跨平台的Client和Server通信架构. taskengine用于启动定时任务和查看 ...

  2. P3391 【模板】文艺平衡树

    模板题 link Splay 区间翻转,存个代码 旋转时,要注意goal是引用 , 并记得修改 , 有标记的一定记得标记下放 , 还有清空 #include<iostream> #incl ...

  3. C 库函数 - strcpy()

    描述 C 库函数 char *strcpy(char *dest, const char *src) 把 src 所指向的字符串复制到 dest. 需要注意的是如果目标数组 dest 不够大,而源字符 ...

  4. python之路函数

    1.函数参数,引用 2.lambda表达式 lambda表达式 f1 = lambda a1,a2: a1+a2 3.python的内置函数 abs(),绝对值 all(),循环参数,如果每个元素都为 ...

  5. VAR模型学习笔记

    目录 1 定义 VAR模型的具体步骤 建模步骤及公式 代码实现 1 定义 VAR模型除了分析自身滞后项的影响外,还分析其他相关因素的滞后项对未来值产生的影响参考 用来分析随机扰动对系统的动态冲击的大小 ...

  6. Spring Boot Post、Get接收Map

    原文地址:https://blog.csdn.net/java0311/article/details/81671754 Post: @RequestBody Map param Get:  @Req ...

  7. Exception in thread "http-apr-8080-exec-1" java.lang.StackOverflowError

    Exception in thread "http-apr-8080-exec-1" java.lang.StackOverflowError 可能执行了递归,陷入了死循环 如下我 ...

  8. vector 牛逼 +lower_bound+ upper_bound

    vector 超级 日白 解决的问题空间问题,可以自由伸缩. 一下用法: 向量大小: vec.size(); 向量判空: vec.empty(); 末尾添加元素: vec.push_back(); / ...

  9. 使用VSCode的Remote-SSH连接Linux进行远程开发

    安装Remote-SSH并配置 首先打开你的VSCode,找到Extensions,搜索Remote,下载Remote-Developoment插件,会自动安装其他的Remote插件,其中会包含Rem ...

  10. LTE引理——解决数论竞赛题的利器

    LTE (Lifting The Exponent Lemma)引理是一个解指数型不定方程的强力工具.它在Olympiad folklore非常知名,虽然它的起源已经无从查找了.它和Hensel’s ...