Docker-compose 介绍
服务编排:按照一定的业务规则批量管理容器
在微服务架构的应用系统中,一般包含 N 个微服务,且每个微服务一般都会部署多个实例。此时,如果每个微服务都要手动启停,维护的工作量会很大。
- 要从 Dockerfile build image 或者去 docker hub 拉取 image
- 要创建多个 container
- 要管理这些 container(启动/停止/删除)
- ...
Docker-compose
Docker-compose 是一个编排多容器分布式部署的工具,提供命令集来管理容器化应用的完整开发周期,包括服务构建,启动和停止。
使用步骤如下:
- 使⽤ Dockerfile 定义运行环境镜像,以便可以在任何地⽅复制它。
- 在 docker-compose.yml 中定义组成应⽤的各服务,以便它们可以在隔离的环境中⼀起运⾏。
- 运⾏ docker-compose up 来启动应用。
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 项目
- 创建 docker-compose 目录:
mkdir ~/docker-compose
cd ~/docker-compose
- 编写 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"
- 创建 ./nginx/conf.d 目录:
mkdir -p ./nginx/conf.d
- 在 ./nginx/conf.d 目录下 编写 demo.conf 文件:
server {
listen 80;
access_log off;
location / {
proxy_pass http://app:8080;
}
}
- 在 ~/docker-compose 目录下使用 docker-compose 启动容器:
docker-compose up
- 测试访问:
http://192.168.149.135/hello