Docker 入门教程(4)——docker-compse 服务编排

Docker compose 简介

compose是用来定义和运行多个Docker容器。

比如一个简单的web项目,除了web服务之外,我们可能要需要数据库容器、注册中心容器等等。那我们需要:

  1. 定义各个容器的Dockerfile文件,docker build -t
  2. 映射硬盘保存数据 docker volume create,然后mount
  3. 设置网络实现容器桥连 docker network create
  4. 。。。。

但有了docker-compose,我们可以在docker-compose.yml定义这些操作,然后只要一个命令docker-compose up -d就行

例子

以spring cloud 的入门hello world为例子部署

项目目录:

-springcloud

​ --feign

​ ---src

​ ---target

​ ---Dockerfile

​ --hello-server

​ ---src

​ ---target

​ ---Dockerfile

​ --register

​ ---src

​ ---target

​ ---Dockerfile

​ --docker-compose.yml

register的Dockerfile定义为上一章的例子,其他的两个的Dockerfile跟register的差不多,只需更改端口和jar包名。

docker-compose的定义如下:

version: '2.1'
services:
  registry:
    image: test/register
    build: ./register
    ports:
      - 8761:8761

  hello:
    image: test/hello
    ports:
      - 8080:8080
    build: ./hello-server
    depends_on:
      - registry

  feign:
    image: test/feign
    ports:
      - 8082:8082
    build: ./feign
    depends_on:
      - registry

然后在docker-compose.yml 目录下执行docker-compose up -d

docker-compose 在执行up命令时会创建默认网络,然后docker-compose编排的服务都会在这个网络下

1644340-20190719150538935-1596344613.png

docker-compose.yml常用命令

build:指定 Dockerfile 所在文件夹的路径

image:指定为镜像名称或镜像 ID。

depends_on: 解决容器的依赖、启动先后的问题。但只解决容器启动先后,但没解决服务完全启动先后,可以用wait for it

network_mode: 设置网络模式

network:配置网络

expose:暴露端口,但不映射到宿主机,只被连接的服务访问。

ports:暴露端口信息。使用宿主端口:容器端口 (HOST:CONTAINER) 格式

devices: 指定设备映射关系。

volumes:数据卷所挂载路径设置。可以设置宿主机路径 (HOST:CONTAINER) 或加上访问模式 (HOST:CONTAINER:ro)。

参考资料

Docker——从入门到实践

使用Spring Cloud与Docker实战微服务

Docker(四):Docker 三剑客之 Docker Compose

使用docker-compose 大杀器来部署服务 上

转载于:https://www.cnblogs.com/wuweishuo/p/11213462.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值