一、简介

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-ce

一、安装docker

1、安装依赖环境

[root@jenkins ~]# yum -y install yum-utils device-mapper-persistent-data  lvm2

2、准备镜像源

[root@jenkins ~]# curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo

3、安装docker-ce

[root@jenkins ~]# yum -y install docker-ce

4.启动docker

[root@docker ~]# systemctl start docker
[root@docker ~]# systemctl enable docker
[root@docker ~]# docker version                     #查看docker版本
5、阿里云镜像加速器
https://account.aliyun.com         #阿里云网站

针对Docker客户端版本大于 1.10.0 的用户

您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

[root@docker ~]# cat <<EOF>/etc/docker/daemon.json
{
  "registry-mirrors": [ "https://你的阿里云镜像加速器.com" ]
}
EOF
[root@docker ~]# systemctl daemon-reload    #重新加载配置 
[root@docker ~]# systemctl restart docker    #重启服务
 
四、安装docker-compose
[root@docker ~]# yum -y install libcurl libcurl-devel
[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
[root@docker ~]# ls
anaconda-ks.cfg         docker-compose 
[root@docker ~]# mv docker-compose /usr/local/bin/
[root@docker ~]# chmod +x /usr/local/bin/docker-compose
[root@docker ~]# docker-compose --version
docker-compose version 1.21.1, build 5a3f1a3
 
五、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简介及安装的更多相关文章

  1. Docker Compose 简介

    Compose 是 docker 提供的一个命令行工具,用来定义和运行由多个容器组成的应用.使用 compose,我们可以通过 YAML 文件声明式的定义应用程序的各个服务,并由单个命令完成应用的创建 ...

  2. 25.docker compose 简介 和 docker-compose.yml 参数介绍

    1. docker compose概念 文档  https://docs.docker.com/compose/compose-file/compose-versioning 一个基于 docker ...

  3. docker compose线下安装

    Compose 是一个用户定义和运行多个容器的 Docker 应用程序.在 Compose 中你可以使用 YAML 文件来配置你的应用服务.然后,只需要一个简单的命令,就可以创建并启动你配置的所有服务 ...

  4. docker和docker compose安装使用、入门进阶案例

    一.前言 现在可谓是容器化的时代,云原生的袭来,导致go的崛起,作为一名java开发,现在慌得一批.作为知识储备,小编也是一直学关于docker的东西,还有一些持续继承jenkins. 提到docke ...

  5. Docker 核心技术之Docker Compose

    Docker Compose 简介 Docker Compose是什么? Docker Compose是一个能一次性定义和管理多个Docker容器的工具. 详细地说: Compose中定义和启动的每一 ...

  6. Docker Compose 之进阶篇

    笔者在前文<Docker Compose 简介>和<Dcoker Compose 原理>两篇文章中分别介绍了 docker compose 的基本概念以及实现原理.本文我们将继 ...

  7. 通过 Docker Compose 组合 ASP NET Core 和 SQL Server

    目录 Docker Compose 简介 安装 WebApi 项目 创建项目 编写Dockfile Web MVC 项目 创建项目 编写Dockfile 编写 docker-compose.yml文件 ...

  8. 1.Docker Compose

    一.Docker Compose 简介 概述 Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排.从功能上看,跟 OpenStack 中的 Heat 十 ...

  9. Docker & ASP.NET Core (5):Docker Compose

    第一篇:把代码连接到容器 第二篇:定制Docker镜像 第三篇:发布镜像 第四篇:容器间的连接 Docker Compose简介 Compose是一个用来定义和运行多容器Docker应用的工具.使用C ...

  10. Docker Compose 原理

    Docker 的优势非常明显,尤其是对于开发者来说,它提供了一种全新的软件发布机制.也就是说使用 docker 镜像作为软件产品的载体,使用 docker 容器提供独立的软件运行上下文环境,使用 do ...

随机推荐

  1. 利用data文件恢复MySQL数据库

    背景:测试服务器 MySQL 数据库不知何种原因宕机,且无法启动,而原先的数据库并没有备份,重新搭建一个新服务器把原data 复制出来 进行恢复 1 尽量把原data复制出来(一个都不要少以防意外 其 ...

  2. NKOJ4238 天天爱跑步(【NOIP2016 DAY1】)

    问题描述 小C同学认为跑步非常有趣,于是决定制作一款叫做<天天爱跑步>的游戏.<天天爱跑步>是一个养成类游戏,需要玩家每天按时上线,完成打卡任务. 这个游戏的地图可以看作一棵包 ...

  3. vim grep sed awk对大小写不敏感

    vim grep sed awk对大小写不敏感 环境 [root@osker ~]# cat /etc/redhat-release CentOS Linux release (Core) [root ...

  4. orm层面的删除的注意事项

    orm层面的删除 当两张表的外键约束设置为RESTRICT or ACTION时,在sql的层面上想要删除父级表的数据时吗,mysql会拒绝删除,但是 使用orm的delete还是会删除父级表的数据. ...

  5. C++语言实现顺序栈

    C++语言实现顺序栈 在写C语言实现顺序栈的时候,我已经向大家介绍了栈的特点以及介绍了栈的相关操作,并利用C语言实现了相关算法.在这里小编就不在继续给大家介绍了,需要温习的可以去我的博客看看.在这篇博 ...

  6. C语言局部数组大小与内存的栈的关系

    今天有个同学问了一个问题,我居然答不上来,为什么不能开局部整型二维数组[1000][1000]?但是在数组前面加上一个static就可以了? windows下栈的大小(不是数据结构里面的栈)是2MB, ...

  7. 假的数论gcd,真的记忆化搜索(Codeforce 1070- A. Find a Number)

    题目链接: 原题:http://codeforces.com/problemset/problem/1070/A 翻译过的训练题:https://vjudge.net/contest/361183#p ...

  8. Thinking in Java,Fourth Edition(Java 编程思想,第四版)学习笔记(六)之Initialization & Cleanup

    Two of these safety issues are initialization and cleanup. initialization -> bug cleanup -> ru ...

  9. PDF阅读器

    1.SumatraPDF 非常小巧,打开很轻快 2.PDF Reader by Xodo window商店中可以找到,很好用 3. PDFXChange Editor这是我迄今为止见过的最好的PDF编 ...

  10. Java核心技术--接口与内部类

    接口implement 继承接口,即履行"义务". 接口中所有的方法自动属于public,在接口声明中,不必提供关键字public 接口中决不能含有实例域,也不能在接口中实现方法 ...