天天看点

docker进阶实践之compose集成式应用组合

一、Compose简介

docker进阶实践之compose集成式应用组合
  1. Compose是docker官方开源项目之一。负责实现快速编排docker容器集群,其定位是 定义和运行多个docker容器的应用。
  2. 稍微有docker基础的小伙伴们,应该都知道借助Dockerfile模板文件可以非常方便地定义一个单独的docker应用容器。但是,日常工作中,我们经常需要多个容器相互配合来完成某项任务。(例如:要实现一个Web项目,除了Web服务容器本身,往往还需要再加上数据库服务容器,大型互联网架构还会考虑很多的中间件服务容器)不巧,Compose恰好就能很好地帮助我们完成这项工作!
  3. 使用Compose有2个非常重要的概念需要注意:
  • 服务(service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。
  • 项目(project):一组关联的应用容器组成的一个完整业务单元。
  1. Compose工作原理:Compose默认的管理对象是项目(project),通过子命令对项目中的一组容器进行便捷的生命周期管理;内部实际上调用了Docker服务提供的API 来管理容器。

二、安装docker-compose

2.1 安装和卸载

Compose支持 Linux/macOS/Windows 三大平台。

  • Compose可以通过pip工具进行安装
  • Compose可以通过下载编译好的二进制文件进行使用
  • Compose还可以直接运行在Docker容器中

2.2 Linux机器上安装docker-compose

Linux系统安装docker-compose的2种方式:

  • 下载编译好的二进制文件
  • 使用Python的包管理工具pip进行安装

2.2.1 二进制包方式安装docker-compose

从官方 GitHub Release 处直接下载编译好的二进制文件即可。

例如,在 Linux 64 位系统上直接下载对应的二进制包。

sudo curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose  #赋予可执行权限
           

三、使用compose构建dubbo-admin服务

3.1 获取 dubbo-admin 源码

  • 从 github 获取 dubbo-admin 的 master 分支源码
git clone -b master https://github.com/apache/incubator-dubbo-ops.git
           
  • 修改 dubbo-admin 中的 application 配置文件,将 zookeeper 地址改为 zookeeper://zookeeper:2181
  • 使用 maven 进行编译打包
mvn clean package -Dmaven.test.skip=true
           

3.2 编写Dockerfile 文件

  • 在 dubbo-admin 目录下编写 Dockerfile 文件,其内容如下:
# FROM,表示使用JDK8环境为基础镜像,如果镜像不是本地的会从DockerHub进行下载
FROM openjdk:8-jdk-alpine

# 作者
MAINTAINER study.163.com<[email protected]>

VOLUME /tmp

# ADD,拷贝文件并且重命名
ADD ./target/dubbo-admin-0.0.1-SNAPSHOT.jar app.jar

# ENTRYPOINT,为了缩短Tomcat的启动时间,添加java.security.egd的系统属性执行/dev/urandoom 作为ENTRYPOINT
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
           
  • 在 Dockerfile 文件所在路径下,执行 docker build -t dubbo-admin:1.0 . 进行docker容器的构建。

3.3 编写 docker-compose.yml 文件

  • 在 dubbo-admin 目录下编写 docker-compose.yml 文件,其内容模板如下:
version: '3.4'
services:
  zk_server:
    image: zookeeper:3.4
    ports:
      - 2181:2181
  dubbo-admin:
    image: dubbo-admin:1.0
    links:
      - zk_server:zookeeper
    ports:
      - 7001:7001
           

3.4 运行 compose 项目

  • 在 dokcer-compose.yml 文件所在路径下执行 docker-compose up
    docker进阶实践之compose集成式应用组合

看到上图所示,表明 dubbo-admin 服务已成功启动!

  • 在浏览器地址栏访问 http://服务器ip:7001 进行验证。登入用户密码为:
root/root 

guest/guest
           

dubbo-admin 界面如下:

docker进阶实践之compose集成式应用组合

四、小结

  • 运行docker-compose 有一个必要条件:docker服务必须处于正常工作状态。
  • docker-compose 的使用属于docker的进阶实践,故要求具备一定的docker基础知识。

继续阅读