Docker使用Dockerfile来实现对现有镜像的修改来创建新的镜像, 那docker-compose则完成镜像的自动部署, 可以实现多个容器同时部署

Dockerfile可以让用户管理一个单独的应用容器;而Compose则运行用户在一个模板中定义一组相关联的容器(被成为一个project项目),

例如一个web服务器加上后端的数据库容器等

安装最新版本

sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

YAML模板文件(关键字)

image

指定镜像名称或镜像ID,如果镜像不存在,尝试拉取镜像

build

指定Dockerfile所在文件夹路径,自动创建镜像并使用这个镜像

command

覆盖容器启动后默认执行的命令

links

连接到其他容器

external_links

连接到docker-compose.yml外部的容器,甚至非Compose管理的容器

ports

暴露端口信息并对外进行映射

expose

暴露端口,但不对外映射,只被连接links的服务访问

volumes

卷挂载设置

volumes_from

从另一个服务或容器挂载它的所有卷

environment

设置环境变量

env_file

从文件中读取环境变量

extends

基于已有的服务进行扩展(继承其他模板的配置)

net

设置网络模式

pid

跟主机系统共享进程命名空间

dns

配置dns服务器

cap_add, cap_drop

添加或放弃容器的Linux能力

dns_search

配置DNS搜索域

其他类似指令

其他的指令和docker run支持的选项类似

working_dir
entrypoint
user
hostname
domainname
mem_limit
privileged
restart
stdin_open
tty
cpu_shares

参考案例

docker-compose.yml模块

# docker-compose.yml 文件内容
version: ''
services:
redis:
image: ssh_img_b02:latest
container_name: redis_test_001
hostname: redis_test_001
restart: always
volumes:
- /root/redis/redisWork/:/redisWork
ports:
- "80:80"
- "220:22"
- "6379:6379"
expose:
- ""
- ""
- ""
#command: '/usr/bin/supervisord'
command: '/redisWork/usr/local/bin/redis-server /redisWork/etc/redis/6379.conf ' # 执行命令
# 如果不用-f参数指定文件,默认查找当前目录的docker-compose.yml文件
# up参数为创建并启动容器, -d表示后台运行, 如果已经存在容器,对比是否更新,如果更新了文件,自动更新文件并重启容器
# 其他参数操控官方 docker-compose -f docker-compose.yml up -d

Docker系列五: docker-compose部署Docker容器的更多相关文章

  1. Docker - 使用Swarm和compose部署服务(containers)

    前言 在之前使用Docker的过程中,一直是用 Docker run 命令单独启动container后再加入Overlay网络的方式实现部署工作的. 这种方式看似直接,但是随着服务所包含的contai ...

  2. Docker系列四: 使用UI管理docker容器

    一.什么是Portainer? Portainer是Docker的图形化管理工具,提供状态显示面板.应用模板快速部署.容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作).事件日志显示.容 ...

  3. Docker实战(五)之端口映射与容器互联

    除了网络访问外,Docker还提供了两个很方便的功能来满足服务访问的基本需求:一个是允许映射容器内应用的服务端口到本地宿主主机;另一个是互联机制实现多个容器间通过容器名来快速访问. 1.端口映射实现访 ...

  4. docker系列(三):docker容器

    1 引言 在前面博文中,我们介绍了镜像.如果说镜像犹如面向对象中的类,本节要说的容器就是由类实例化出来的对象了,有了类才可以创建容器. 先从拉取一个官方提供的ubuntu最新镜像: $ docker ...

  5. Docker系列08—搭建使用私有docker registry

    本文收录在容器技术学习系列文章总目录 1.了解Docker Registry 1.1 介绍 registry 用于保存docker 镜像,包括镜像的层次结构和元数据. 启动容器时,docker dae ...

  6. Docker系列教程01-Centos7安装新版Docker教程(10步)

    最近一直忙于开发,没有时间好好总结一下docker的知识.其实现在docker的教程已经很多很多了,但是很多系统的教程都是基于Ubuntu系统,因为官方推荐使用Ubuntu系统啊,原因在于Ubuntu ...

  7. 【Docker系列】:全面认识Docker和基本指令

    Docker逐渐成为虚拟化技术的佼佼者,Docker技术也是架构师的必备技能. 什么是Docker Docker 是一个开源的应用容器引擎,基于Go语言,诞生于2013年初,最初发起者是dotClou ...

  8. docker系列(一):docker基础与安装笔记

    1 什么是docker docker是基于GO语言编写的开源容器项目,诞生于2013年初,到目前为止,已经经历了6年的发展演变.现如今,docker已经非常火爆,特别是在一线IT企业,部署.运维等工作 ...

  9. docker 系列 - 基础镜像环境和Docker常用命令整理

    =======================docker 基础镜像环境 alpine=======================可以使用 docker search 命令搜索指定的 image, ...

随机推荐

  1. POJ 1562:Oil Deposits

    Oil Deposits Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 14462   Accepted: 7875 Des ...

  2. python counter、闭包、generator、解数学方程、异常

    1.counter 2.闭包 3.generator 4.解数学方程 5.异常 1.python库——counter from collections import Counter breakfast ...

  3. 谈IO中的阻塞和非阻塞,同步和异步及三种IO模型

    什么是同步和异步? 烧水,我们都是通过热水壶来烧水的.在很久之前,科技还没有这么发达的时候,如果我们要烧水,需要把水壶放到火炉上,我们通过观察水壶内的水的沸腾程度来判断水有没有烧开.随着科技的发展,现 ...

  4. Codeforces Round #594 (Div. 1) Ivan the Fool and the Probability Theory

    题意:给你一个NxM的图,让你求有多少符合 “一个格子最多只有一个同颜色邻居”的图? 题解:首先我们可以分析一维,很容易就可以知道这是一个斐波那契计数 因为dp[1][m]可以是dp[1][m-1]添 ...

  5. CSS3新特性—animate动画

    1.animate介绍 1. @keyframes 自定义动画名称 { from { } to { } } 2. 通过动画名称调用动画集 animation-name: 动画集名称. 3. 属性介绍: ...

  6. Maven学习(一)——maven入门

    一.下载及安装 1.1 下载maven 3.1.1 先到官网http://maven.apache.org/download.cgi 下载最新版本(目前是3.1.1 ),下载完成后,解压到某个目录(本 ...

  7. vue点击变色

    <template> <div> <router-link to="/w1">点击回去</router-link> <div ...

  8. JavaEE--使用百度echarts实现地图报表

    参考:http://echarts.baidu.com/option.html#title https://www.cnblogs.com/zhangyong123/p/4974554.html ht ...

  9. 转载:微信小程序源码提取反编译

    转载来源:www.51xuediannao.com/xiaochengxu/019c08cc.html 一.前言 微信小程序源码提取反编译,听起来很屌,其实还是简单的,基本是傻瓜式操作.要想拿到微信小 ...

  10. 移动端— Touch事件轮播图

    虽然 以前也写过手机端页面 .当时用的jquery moblie 框架.啥也不懂 就知道复制粘贴出效果 不敢改内部样式.现在呢  了解手机端原理 一些基本的概念 视口 缩放 后 .再去想以前写的页面  ...