Docker 入门教程(4)——docker-compse 服务编排
Docker compose 简介
compose是用来定义和运行多个Docker容器。
比如一个简单的web项目,除了web服务之外,我们可能要需要数据库容器、注册中心容器等等。那我们需要:
- 定义各个容器的Dockerfile文件,docker build -t
- 映射硬盘保存数据 docker volume create,然后mount
- 设置网络实现容器桥连 docker network create
- 。。。。
但有了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编排的服务都会在这个网络下

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(四):Docker 三剑客之 Docker Compose
Docker 入门教程(4)——docker-compse 服务编排的更多相关文章
- Docker(三):Docker入门教程-CentOS Docker 安装
CentOS Docker 安装 Docker支持以下的CentOS版本: CentOS 7 (64-bit) CentOS 6.5 (64-bit) 或更高的版本 前提条件 目前,CentOS 仅发 ...
- 超实用的Docker入门教程|Docker vs VM
概述 如今Docker的使用已经非常普遍,特别在一线互联网公司.使用Docker技术可以帮助企业快速水平扩展服务,从而到达弹性部署业务的能力.在云服务概念兴起之后,Docker的使用场景和范围进一步发 ...
- docker 入门教程(5)——总结与学习资料
总结 registry:docker镜像仓库,集中存储和管理镜像,类似maven仓库. image:docker镜像,定义容器运行的文件和参数,可以看作是面向对象编程的类. container:doc ...
- Docker入门教程(六)另外的15个Docker命令
Docker入门教程(六)另外的15个Docker命令 [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第六篇,继续介绍Docker命令.之前的第二篇文章 ...
- Docker入门教程(五)Docker安全
Docker入门教程(五)Docker安全 [编者的话]DockOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第五篇,介绍了Docker的安全问题,依然是老话重谈,入门者可以通 ...
- Docker入门教程(一)介绍
http://dockone.io/article/101 Docker入门教程(一)介绍 [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第一篇,介绍了 ...
- Docker(一):Docker入门教程
如今Docker的使用已经非常普遍,特别在一线互联网公司.使用Docker技术可以帮助企业快速水平扩展服务,从而到达弹性部署业务的能力.在云服务概念兴起之后,Docker的使用场景和范围进一步发展,如 ...
- Docker 入门 第三部分: 服务
目录 Docker 入门 第三部分: 服务 先决条件 介绍 你的第一个 docker-compose.yml 文件 docker-compose.yml 运行你新建的负载均衡应用 扩展应用程序 卸载应 ...
- Docker(一):Docker入门教程
如今Docker的使用已经非常普遍,特别在一线互联网公司.使用Docker技术可以帮助企业快速水平扩展服务,从而到达弹性部署业务的能力.在云服务概念兴起之后,Docker的使用场景和范围进一步发展,如 ...
- [转帖]Docker 入门教程
Docker 入门教程 http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html 自己学的还是太肤浅啊.. 作者: 阮一峰 日期: 201 ...
随机推荐
- 路由网关(Zuul)
上一篇已经讲了微服务组件中的 分布式配置中心,本章讲述 由JAVA编写的服务路由网关Zuul… - Zuul 路由是微服务体系结构的一个组成部分.例如 / 可以映射到您的Web应用程序,/api/us ...
- Python3笔记009 - 2.6 输入和输出
第2章 python语言基础 python语法特点 保留字与标识符 变量 数据类型 运算符 输入和输出 2.6 输入和输出 1.input()函数 name = input("请输入姓名:& ...
- 【经典DP】洛谷 P2782 友好城市
嘤嘤嘤,昨天两个文化课老师在上奥赛时招呼我(亲切交流),今天又要写工作报告,没时间写题解,希望今天能补上 友好城市 题目://洛谷那粘来的题面竟然能把格式粘过来 题目描述 有一条横贯东西的大河,河有笔 ...
- Tensorflow-gpu环境搭建
显卡设备:英伟达1060 系统:Windows10 python版本:3.7.4 CUDA:cuda_10.0.130_411.31_win10 cudnn:cudnn-10.0-windows10- ...
- CSS(六)- 内容布局 - Flexbox
Flexbox是CSS3提供的用于布局的一套新属性,是为了应对行内块.浮动和表格格式产生的问题而生的.其包含针对容器(弹性容器,flex container)和针对其直接子元素(弹性项,flex it ...
- vue中使用ts时如何导入mixins
方法一 // mixins.ts import { Vue } from "vue-property-decorator"; export class TableSelect ex ...
- JVM 专题十八:垃圾回收(二)垃圾回收相关算法
1. 标记阶段 1.1 引用计数算法 1.1.1 对象存活判断 在堆里存放着几乎所有的Java对象实例,在GC执行垃圾回收之前,首先需要区分出内存中哪些是存活对象,哪些是已经死亡的对象.只有被标记为己 ...
- selenium报错Element is not clickable at point及四种解决方法
使用Selenium时,触发点击事件,经常报如下异常:Element is not clickable at point 1.未加载没加载出来就等待元素加载出来,再往下执行.可以使用python库ti ...
- Django框架11 /form组件、modelForm组件
Django框架11 /form组件.modelForm组件 目录 Django框架11 /form组件.modelForm组件 1. form组件介绍 2. form常用字段与插件 3. form所 ...
- 06-Python元组,列表,字典,集合数据结构
一.简介 数据结构是我们用来处理一些数据的结构,用来存储一系列的相关数据. 在python中,有列表,元组,字典和集合四种内建的数据结构. 二.列表 用于存储任意数目.任意类型的数据集合.列表是内置可 ...