Docker-compose:服务编排


Docker-compose 介绍

服务编排:按照一定的业务规则批量管理容器

在微服务架构的应用系统中,一般包含 N 个微服务,且每个微服务一般都会部署多个实例。此时,如果每个微服务都要手动启停,维护的工作量会很大。

  • 要从 Dockerfile build image 或者去 docker hub 拉取 image
  • 要创建多个 container
  • 要管理这些 container(启动/停止/删除)
  • ...

Docker-compose

Docker-compose 是一个编排多容器分布式部署的工具,提供命令集来管理容器化应用的完整开发周期,包括服务构建,启动和停止。

使用步骤如下:

  1. 使⽤ Dockerfile 定义运行环境镜像,以便可以在任何地⽅复制它。
  2. 在 docker-compose.yml 中定义组成应⽤的各服务,以便它们可以在隔离的环境中⼀起运⾏。
  3. 运⾏ docker-compose up 来启动应用。

image


Docker-compose 安装

安装

macOS、Windows 系统使⽤的 Docker Desktop 默认已经安装 compose,Linux 系统安装方法则如下:

# 在安装 Compose 之前,需要先安装 Docker。下面以编译好的二进制包方式安装在 Linux 系统中
curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

# 设置文件可执行权限 
chmod +x /usr/local/bin/docker-compose

# 查看版本信息 
docker-compose -version

卸载

# 二进制包方式安装的,删除二进制文件即可
rm /usr/local/bin/docker-compose

Docker-compose 常用命令

  • 查看配置:docker-compose config
  • 后台启动:docker-compose up -d
  • 构建镜像:docker-compose build
  • 下载镜像:docker-compose pull
  • 查看运⾏:docker-compose ps
  • 进程:docker-compose top
  • 启动:docker-compose start
  • 停⽌:docker-compose stop

案例:编排 Nginx + SpringBoot 项目

  1. 创建 docker-compose 目录:
mkdir ~/docker-compose
cd ~/docker-compose
  1. 编写 docker-compose.yml 文件:
version: '3'
services:
  nginx:
   image: nginx
   ports:
    - 80:80
   links:
    - app
   volumes:
    - ./nginx/conf.d:/etc/nginx/conf.d
  app:
    image: app
    expose:
      - "8080"
  1. 创建 ./nginx/conf.d 目录:
mkdir -p ./nginx/conf.d
  1. 在 ./nginx/conf.d 目录下 编写 demo.conf 文件:
server {
    listen 80;
    access_log off;

    location / {
        proxy_pass http://app:8080;
    }
   
}
  1. 在 ~/docker-compose 目录下使用 docker-compose 启动容器:
docker-compose up
  1. 测试访问:
http://192.168.149.135/hello
posted @ 2022-01-19 13:13  Juno3550  阅读(175)  评论(0编辑  收藏  举报