1、Docker Compose简介及安装

Compose是一个定义和管理多容器的工具,使用Python语言编写。使用Compose配置文件描述多个容器应用的架构,比如使用什么镜像、数据卷、网络、映射端口等;然后一条命令管理所有服务,比如启动、停止、重启等。
GitHub地址:https://github.com/docker/compose。

compose docker 定义volumes docker compose详解_YAML

我们现在上图中的 docker-compose-Linux-x86_64文件拷贝到docker应用主机中。

【安装compose】

[root@aliyun205 soft]# curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
[root@aliyun205 soft]# chmod +x /usr/local/bin/docker-compose
#查看安装后信息
[root@aliyun205 soft]# docker-compose version
docker-compose version 1.23.2, build 1110ad01
docker-py version: 3.6.0
CPython version: 3.6.7
OpenSSL version: OpenSSL 1.1.0f  25 May 2017

2、Docker Compose中yaml文件说明

YAML是一种标记语言很直观的数据序列化格式,可读性高。类似于XML数据描述语言,语法比XML简单的很多。
YAML数据结构通过缩进来表示,连续的项目通过减号来表示,键值对用冒号分隔,数组用中括号括起来,hash用花括号括起来。
YAML文件格式注意事项
(1)不支持制表符tab键缩进,需要使用空格缩进
(2)通常开头缩进2个空格
(3)字符后缩进1个空格,如冒号、逗号、横杆
(4)用井号注释
(5)如果包含特殊字符用单引号引起来
(6)布尔值(true、false、yes、no、on、off)必须用引号括起来,这样分析器会将他们解释为字符串

YAML文件配置说明

字段

说明

build

  dockerfile

  context

指定Dockerfile文件名

构建镜像上下文路径

image

指定镜像

command

执行镜像命令

container_name

指定容器名称,由于容器名称是唯一的,如果指定自定义名称,则无法scale

deploy

指定部署和运行服务相关配置,只能在swarm模式使用

environment

添加环境变量

networks

加入网络,引用顶级networks下条目

ports

暴露端,与-p相同,但是端口不能低于60

volumes

挂载宿主机路径或命名卷。如果是命名卷在顶级volumes定义卷名称

restart

重启策略,默认no,always|on-failre|unless-stopped

hostname

容器主机

【注意】YAML文件官方官方详细说明:https://docs.docker.com/compose/compose-file/#resources

3、Compose常用命令

【compose常用命令】
(1)build:重新构建服务;
(2)ps:列出容器;
(3)up:创建爱你和启动容器;
(4)exec:在容器里执行命令;
(5)scale:指定一个服务容器启动数量;
(6)top:显示容器进程;
(7)logs:查看容器输出日志;
(8)down:删除容器、网络、数据卷和镜像;
(9)stop/start/restart:停止、启动、重启服务。

4、docker-compose启动/停止命令

【前台运行】

#前台运行
[root@aliyun205 ~]# docker-compose -f docker-compose.yml up

【后台运行】

#后台启动命令
[root@aliyun205 ~]# docker-compose -f docker-compose.yml up -d

【启动命令】

#启动命令
[root@aliyun205 ~]# docker-compose -f docker-compose.yml start

【停止命令】

[root@aliyun205 ~]# docker-compose stop

【移除容器】

[root@aliyun205 ~]# docker-compose -f docker-compose.yml down