docker-compose 使用
Docker提供一个容器编排工具------》Docker Compose,它允许用户在一个模板(YAML格式)中定义一组相关联的应用容器,这组容器会根据配置模板中的"--link"等参数
对启动的优先级自动排序,简单执行一条"docker-compose up",就可以把同一个服务中的多个容器一次创建和启动。
安装docker-compose:
curl -L https://github.com/docker/compose/release/download/1.6.0/docker-compose-`uname -s`-`uname -r` > /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose
使用Docker Compose管理多个容器,首先需要把容器写到它的配置文件中,默认配置文件名为docker-compose.yml,我们可以通过“-f”选项指定配置文件。
下面通过安装redmine来说明
将docker run创建容器的指令改造为Docker Compose的配置文件
postgresql容器创建和启动的命令为:
[root@localhost ~]# docker run --name postgresql-redmine -d \
> --env 'DB_NAME=redmine_production' \
> --env 'DB_USER=redmine' \
> --env 'DB_PASS=password' \
> sameersbn/postgresql:9.4-
它使用sameersbn/postgresql:9.4-12镜像创建了一个名字为postgresql-redmine的容器,并配置了三个环境变量。转换为Docker Compose配置文件内容如下:
postgresql:
image: sameersbn/postgresql:9.4-
environment:
- DB_NAME=readmine_production
- DB_USER=redmine
- DB_PASS=password
redmine容器创建和启动的命令为:
docker run --name redmine -d --link postgresql-redmine:postgresql --publish : --env 'REDMINE_PORT=10083' sameersbn/redmine:3.2.-
它使用 sameersbn/redmine:3.2.0-4镜像创建了一个名字为redmine的容器,转换为Docker Compose配置文件内容如下:
redmine:
image: sameersbn/redmine:3.2.-
links:
- postgresql:postgresql
ports:
- "10083:80"
environment:
- REDMINE_PORT=
创建配置文件~/redmine/docker-compose.yml,合并内容如下:
postgresql:
image: sameersbn/postgresql:9.4-
environment:
- DB_NAME=readmine_production
- DB_USER=redmine
- DB_PASS=password redmine:
image: sameersbn/redmine:3.2.-
links:
- postgresql:postgresql
ports:
- "10083:80"
environment:
- REDMINE_PORT=
执行新容器组的创建和启动:
docker-compose up -d
最后,通过http://ip10083就可以访问网站。
后续启动和停止就变得非常简单了:
停止命令:
docker-compose stop
启动命令:
docker-compose start
docker-compose 使用的更多相关文章
- Docker compose学习笔记
一.compose compose 作用 你的应用可能需要很多个服务,比如web服务,数据库服务,缓存服务等等.我们可以把这些服务放到单独的容器里面,如果手工去配置这些服务会有些麻烦,docker c ...
- docker compose 笔记
https://www.youtube.com/watch?v=Uez88TWOECg 是基于这个视频做的笔记. Docker Compose: Compose is a tool for defin ...
- 利用docker compose启动gitlab及runner
添加docker compose配置文件 新建文件docker-compose.yml,输入如下内容: gitlab: image: 'gitlab/gitlab-ce:latest' contain ...
- Docker Compose to CoreOS
taken from https://docs.docker.com/compose/install/ the only thing is that /usr is read only, but /o ...
- Docker Compose—简化复杂容器应用的利器
Compose是用于定义和运行复杂Docker应用的工具.你可以在一个文件中定义一个多容器的应用,然后使用一条命令来启动你的应用,然后所有相关的操作都会被自动完成. 1. 安装Docker和Compo ...
- .NET遇上Docker - 使用Docker Compose组织Ngnix和.NETCore运行
本文工具准备: Docker for Windows Visual Studio 2015 与 Visual Studio Tools for Docker 或 Visual Studio 2017 ...
- Docker Compose容器编排
Compose是Docker官方的开源项目,可以实现对Docker容器集群的快速编排.Compose 中有两个重要的概念:服务(service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实 ...
- Docker(四):Docker 三剑客之 Docker Compose
前两篇文章我们介绍了 Dockerfile 的使用Docker(二):Dockerfile 使用介绍,我们知道使用一个 Dockerfile 模板文件可以定义一个单独的应用容器,如果需要定义多个容器就 ...
- Spring Boot 2.0(五):Docker Compose + Spring Boot + Nginx + Mysql 实践
我知道大家这段时间看了我写关于 docker 相关的几篇文章,不疼不痒的,仍然没有感受 docker 的便利,是的,我也是这样认为的,I know your felling . 前期了解概念什么的确实 ...
- Docker学习笔记 - Docker Compose 脚本命令
Docker Compose 配置文件包含 version.services.networks 三大部分,最关键的是 services 和 networks 两个部分, version: '2' se ...
随机推荐
- python3+Appium自动化05-xpath定位
概念 xpath定位是一种路径定位方式,主要是依赖于元素绝对路径或者相关属性来定位,但是绝对路径xpath执行效率比较低(特别是元素路径比较深的时候),一般使用比较少.通常使用xpath相对路径和属性 ...
- jquery中的$(document).ready()
window.onload = function(){ alert("welcome"); } 这样的写法作用是希望在页面加载完,自动执行定义js代码(function). $(d ...
- 禁止form重复提交
$("form").submit(function () { console.log("提交了"); $("input:submit").a ...
- JVM(二):垃圾回收
三个问题: 那些内存需要回收? -- 对象是否存活判断 什么时候回收? --垃圾回收触发条件 如何回收? --垃圾回收算法 垃圾回收应用 -- 理解GC日志.使用垃圾回收命令和工具 1. 判断 ...
- js中函数声明先提升还是变量先提升
根据官方书籍<你不知道的javascript>(上卷)中写道: "函数会首先被提升,然后才是变量". 例子: console.log(foo); function fo ...
- a href="javascript:"与a href="#"
<a href="javascript:;"></a> <a href="#"></a> 这两种写法.这两种写法 ...
- grunt + sass 使用记录
环境依赖 Nodejs for grunt Ruby for sass 配置文件 package.json { "name": "app", "ver ...
- Azure School,让系统化学习回归一站式的简单体验
承认吧,「终身制学习」已经成为一个不可抵挡的趋势.不管你从事什么行业,几乎已经没有什么可以一直吃老本就能搞定的事情,总有各种新的技术和概念等着你去学.至于发展速度飞快的IT 技术,不断的学习更是贯彻始 ...
- 部署JavaWeb时出现 If a file is locked,you can wait until
在部署JavaWeb程序时出现了if a file is locked ,you can wait until the lock stop的问题,这个主要是classpath目录出错或者jar包未导入 ...
- HDU 2955 Robberies抢劫案(01背包,变形)
题意:要抢劫,但是抢每个银行都有被抓的概率,问在低于规定的被抓概率情况下最多能抢到多少钱. 输入:第一行为T,表示共T个测试例子.每个例子的第一行给出一个浮点数P,是规定被抓的概率上限.第一行还有一个 ...