Docker Compass

Docker Compose介绍

使用微服务架构的应用系统一般包含若干个微服务,每个微服务一般都会部署多个实例。如果每个微服务都要手动启停,那么效率之低、维护量之大可想而知。本节课将讨论如何使用 Docker Compose来轻松、高效地管理容器。为了简单起见将 Docker Compose简称为 Compose。
Compose 是一个用于定义和运行多容器的Docker应用的工具。使用Compose,你可以在一个配置文件(yaml格式)中配置你应用的服务,然后使用一个命令,即可创建并启动配置中引用的所有服务。下面我们进入Compose的实战吧

Docker Compose的安装

Compose的安装有多种方式,例如通过shell安装、通过pip安装、以及将compose作为容器安装等等。本文讲解通过shell安装的方式。其他安装方式如有兴趣,可以查看Docker的官方文档:Install Docker Compose | Docker Documentation

docker composs官网给的下载速度较为慢 重新指定下载源
curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose


[root@node01 images]# sudo chmod +x /usr/local/bin/docker-compose
[root@node01 images]# docker-compose --version

Docker Compose入门示例

Compose的使用非常简单,只需要编写一个docker-compose.yml,然后使用docker-compose 命令操作即可。docker-compose.yml描述了容器的配置,而docker-compose 命令描述了对容器的操作。
我们使用Dockerfile为项目microservice-eureka-server构建Docker镜像吗?我们还以此项目为例测试
我们在microservice-eureka-server-0.0.1-SNAPSHOT.jar所在目录的上一级目录,创建docker-compose.yml 文件。
目录树结构如下:
├── docker-compose.yml
└── eureka
├── Dockerfile
└── microservice-eureka-server-0.0.1-SNAPSHOT.jar
然后在docker-compose.yml 中添加内容如下:

version: '3'
services:
  eureka:             #指定服务名
    image: microservice-eureka-server:0.0.1  #指定镜像名称
    build: ./eureka   #指定Dockfile所在路径
    ports:
      - "8761:8761"   #指定端口映射
    expose:
      - 8761          #声明容器对外暴露的端口
    container_name: eureka
    restart: alwalys

在docker-compose.yml 所在路径执行: 

docker-compose up (后面加-d可以后台启动)

Docker Compass_第1张图片
如上图,compose启动会做几件事:
1、创建一个默认的网络app_default,默认以compose所在文件目录名加"_default"命名,compose内的所有容器都会加入此网络,可以相互用服务名访问。
2、如果镜像 microservice-eureka-server:0.0.1 不存在先构建镜像,如果镜像存在则不构建,加上 --build 参数可以强制先构建镜像,如果镜像之前构建过且构建文件没有变化或构建的内容没有变化,就算加上 --build 参数也不会重新构建。
3、根据构建的镜像创建一个名称叫 app_eureka_1 的容器。
4、启动容器。

访问:http://宿主机IP:8761/ ,发现可以正常访问eureka主页。

你可能感兴趣的:(Docker,docker)