Skip to content

zhdech/Docker-Learning

 
 

Repository files navigation

Docker Compose编排工具简介

Compose是一个用于定义和运行多容器Docker应用程序的工具,前身是Fig,它非常适合用在开发、测试、构建CI(持续集成)工作流等场景中。

Docker Compose是一个用来定义和运行复杂应用的Docker工具。一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose不再需要使用shell脚本来启动容器。

Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用多个容器进行开发的场景。

Compose 是 Docker 公司推出的一个工具软件,可以管理多个 Docker 容器组成一个应用。你需要定义一个 YAML 格式的配置文件docker-compose.yml,写好多个容器之间的调用关系。然后,只要一个命令,就能同时启动/关闭这些容器。

Docker Compose将所管理的容器分为三层,分别是工程(Project),服务(Service)以及容器(Container).Docker Compose运行目录下的所有文件(docker-compose.yml,extends文件或环境变量文件等)组成一个工程(默认为docker-compose.yml所在目录的目录名称)。一个工程可以包含多个服务,每个服务中定义了容器运行的镜像、参数和依赖,一个服务可包含多个容器实例。

# 启动所有服务
$ docker-compose up
# 关闭所有服务
$ docker-compose stop

学习目标

Micro-service-learning 工程的学习基础之上,使用docker工具进行服务的发布,主要利用其中的6个子工程来进行学习,工程列表如下:

  • microservice-consume-movie-feign-hystrix:服务消费者(整合ribbon.feign,hystrix)
  • microservice-discovery-eureka:服务注册中心(Eureak)
  • microservice-getway-zuul:路由网关(Zuul)
  • microservice-hystrix-dashboard:hystrix可视化监控工具(独立项目,不依赖服务注册中心)
  • microservice-hystrix-turbine:turbine聚合监控数据(供microservice-hystrix-dashboard调用)
  • microservice-provider-user:服务提供者

环境:

  • 虚拟机上已经搭建了docker服务,并可以进行正常的镜像拉取,上传阿里云镜像仓库操作,相关功能已经经过测试,达到了实验的条件。
  • idea开发工具上面已经安装了docker开发插件,并且虚拟机的docker开启了api2375端口,远程传输的功能,并且已经单独进行了测试,达到了在idea上发布镜像到虚拟中的条件。

学习目的:

在Idea工具上编排微服务的各个服务,并使用docker插件发布到虚拟机中的docker服务中,然后进入虚拟机,在虚拟机中将镜像发布到远程阿里云docker镜像仓库,供其他主机使用时拉取。

学习计划:

  1. docker compose快速入门:使用microservice-discovery-eureka作为学习目标,使用compose工具进行编排发布,并可进行访问;
  2. 编排这6个微服务,并最终可进行访问;

Docker Compose 的安装

两种最新的docker安装方式

1.从github上下载docker-compose二进制文件安装

  • 下载最新版的docker-compose文件

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

  • 添加可执行权限 chmod +x /usr/local/bin/docker-compose

  • 测试安装结果 $ docker-compose --version

2.pip安装

$ sudo pip install docker-compose

Docker Compose基本使用

  • 使用Dockerfile定义应用程序环境,以便在任何地方重现该环境。

  • 在docker-compose.yml文件中定义组成应用程序的服务,以便各个服务在一个隔离的环境中一起运行。

  • 运行docker-compose up命令,启动并运行整个应用程序。

docker-compose.yml常用命令

docker-compose.yml是Compose的默认模板文件。该文件有多种写法,目前Version 2.X以及Version 3.X基本兼容,是未来的趋势。

  • build

配置构建时的选项,Compose会利用它自动构建镜像。build的值可以是一个路径,例如:build: ./dir,也可以是一个对象,用于指定Dockerfile和参数,例如:

具体的步骤

  • 使用Idea中的docker插件构建Docker镜像,发布到虚拟机中的docker服务中。

  • 编写docker.compose.yml编排文件
# 表示docker-compose.yml文件使用的是Version 2 file format
version: '2'
# Version 2 file format的固定写法,为project定义服务
services:
  #指定服务名称
  microservice-discovery-eureka:
    #指定服务所用的镜像
    image: microservice-discovery-eureka:latest
    #爆暴露端口信息
    ports:
      - "8761:8761"
  microservice-provider-user:
    #指定镜像
    image: microservice-provider-user
    #连接microservice-discovery-eureka服务,这里使用的是service:alias的形式
    links:
      - microservice-discovery-eureka:discovery
    #爆暴露端口信息
    ports:
      - "9000:9000"
  microservice-consume-movie-feign-hystrix:
    #指定镜像
    image: microservice-consume-movie-feign-hystrix
    #爆暴露端口信息
    ports:
      - "9103:9103"
    #连接服务
    links:
      - microservice-discovery-eureka:discovery
  • 启动服务:
docker-compose up

About

Docker学习项目,使用docker工具编排微服务。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Java 100.0%