如何部署Docker Compose?

Docker

1 基础知识

1.1 Compose的简介

– Compose是用于定义和运行多容器Docker应用程序的工具
– Compose使用YAML文件来配置应用程序的服务
– Compose允许使用单个命令从配置中创建并启动所有服务

1.2 Compose的适用环境

– production(生产)环境
– staging(演示)环境
– development(开发)环境
– testing(测试)环境
– CI workflows(CI工作流)环境

1.3 Compose使用三部曲

– 使用“Dockerfile”定义应用环境(该文件可复制到其他环境使用)
– 使用“docker-compose.yml”定义组成应用程序的服务
– 使用“docker-compose up”命令启动并运行应用程序
另外,“docker-compose.yml”的范例定义如下,

version: '2.0'
services:
  web:
    build: .
    ports:
    - "5000:5000"
    volumes:
    - .:/code
    - logvolume01:/var/log
    links:
    - redis
  redis:
    image: redis
volumes:
  logvolume01: {}

以上更详细的信息请参阅以下链接,
https://docs.docker.com/compose/compose-file/

1.4 Compose的命令功能

– 启动、停止和重建服务
– 查看正在运行的服务状态
– 以流形式输出运行的服务日志
– 服务上运行一次性命令

1.5 Compose的功能

1.5.1 单主机的多环境隔离(使用项目名称隔离)

– 允许开发主机创建单个环境的多个副本(可选择最稳当的副本运行)
– 允许CI服务器上为项目名称设置唯一的内部版本号以防止内部版本干扰
– 允许共享主机或开发主机上不同项目使用相同的服务名称而不相互干扰
注:
– 项目名称是项目目录的基本名称
– “docker-compose”命令允许使用“-p”参数环境变量“COMPOSE_PROJECT_NAME”定义项目名称

1.5.2 创建容器时保留卷的数据

– Compose保留服务使用的所有卷
– 使用“docker-compose up”启动容器时Compose会将旧卷复制到新卷以防止数据丢失

1.5.3 仅重新创建已更改的容器

– Compose缓存用于创建容器的配置
– Compose重启时会检测配置是否更新,未更新的配置会被直接从缓存调用

1.5.4 变量和环境之间的合成以及迁移

– Compose可使用Compose文件的变量定义不同的环境
– Compose可使用extends字段或通过多个Compose文件来扩展

1.6 Compose的安装条件

– Docker Compose依赖于Docker Engine(需要先安装)
– Docker Compose需要以非root用户身份运行

2 最佳实践

2.1 环境信息

OS = CentOS 7.6 x86_64
IP Address = any
Host Name = any.cmdschool.org

2.2 安装前的准备

2.2.1 部署Docker Engine

如果你只有单台物理服务器,请按如下教程安装并部署Docker Engine,
https://www.cmdschool.org/archives/9773
如果你有多台物理服务器的集群环境,请按如下教程安装并部署Docker Engine,
https://www.cmdschool.org/archives/10880
注:以上“Docker用户与权限”

2.2.2 部署Docker Engine

curl -L https://github.com/docker/compose/releases/download/1.28.6/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

其他版本请从以下链接下载,
https://github.com/docker/compose/releases/
安装完成后,请使用如下命令测试,

docker-compose -v

参阅文档
========================

Compose的概述
—————
https://docs.docker.com/compose/

Compose的安装
—————-
https://docs.docker.com/compose/install/

没有评论

发表评论

Docker
如何打包Docker Nginx?

1 前言 一个问题,一篇文章,一出故事。 由于docker hub原版本的nginx镜像过于精简,于 …

Docker
如何打包Docker MAC-Telnet?

1 基础知识 一款可以使用MikroTik RouterOS MAC-Telnet协议连接Mikro …

Docker
如何部署Docker Unifi-WiFi?

1 前言 一个问题,一篇文章,一出故事。 笔者Unifi-WiFi想要迁移至docker环境,于是产 …