Docker-compose管理docker服务

1、安装docker-compose

@首先确保服务器上已经安装docker环境,如果没有安装使用如下命令进行安装:

# yum  -y  install  dock

#curl -L https://github.com/docker/compose/releases/download/1.8.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

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

 

2、创建docker-compose运行需要的配置文件,docker-compose.yml他是yml格式的。默认启动的时候会在当前目录下找配置文件,也可以通过-f 指定配置文件来启动。

# cat docker-compose.yml

version: '2'

services:

  elasticsearch:

    build: elasticsearch/

    ports:

      - "9200:9200"

      - "9300:9300"

    environment:

      ES_JAVA_OPTS: "-Xms30g -Xmx30g"

    networks:

      - docker_elk

    volumes:

      - ./elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml

      - /data/elasticsearch:/usr/share/elasticsearch/data

  logstash:

    build: logstash/

    command: -f /etc/logstash/conf.d/ --config.reload.automatic

    volumes:

      - ./logstash/config:/etc/logstash/conf.d

    ports:

      - "5000:5000"

      - "5043:5043"

    networks:

      - docker_elk

    depends_on:

      - elasticsearch

  kibana:

    build: kibana/

    volumes:

      - /tmp/:/etc/archives/

      - ./kibana/config/:/etc/kibana/

    ports:

      - "5601:5601"

    networks:

      - docker_elk

    depends_on:

      - elasticsearch

 

networks:

  docker_elk:

driver: bridge

 

@这个配置文件使用解读如下:

 services:

     部署的服务名称:

        build: 填写服务的Dockerfile路径

        ports

-          本机port:容器port”

-          “………”

-          …………….

               注:当使用 HOST:CONTAINER 格式来映射端口时,如果你使用的容器端口小于 60 你可能会得到错误得结果,因为 YAML 将会解析 xx:yy 这种数字格式为 60 进制。所以建议采用字符串格式。

environment: 设置环境变量

                   ES_JAVA_OPTS: "-Xms30g -Xmx30g"

                networks:  定义docker网络,名称一样的可以互通。

-          “docker_elk”

                 volumes:  挂载本地目录到容器

-          /data:/data

command: -f /etc/logstash/conf.d/ --config.reload.automatic

command用于覆盖容器后执行的命令

               networks:

                   docker_elk:

                      driver:bridge

               extends: 基于已有的服务进行扩展

file: common.yml

使用这种方式管理docker容器,前提必须已经创建好了Dockerfile,在相应的目录下。

@第二种格式是docker-compose自己pull镜像,不用创建Dockerfile

  # cat  docker-compose.yml

   version: '2'

services:

  App1:

    image: nginx    #指定为镜像名称或镜像 ID。如果镜像在本地不存在,Compose 将会尝试拉去这个镜像。

    ports:

      - "8080:80"

    networks:

      - "netName1"

    volumes:

      - /opt/conf/:/mnt

  App2:

    image: nginx

    ports:

      - "8081:80"

    networks:

      - "netName1"

    volumes:

      - /opt/conf/nginx.conf:/etc/nginx/nginx.conf

  App3:

image: nginx

- /opt/web/:/usr/share/nginx/html

    ports:

      - "8082:80"

    networks:

      - "netName2"

networks:

  netName1:

    driver: bridge

  netName2:

driver: bridge

 

启动服务:

# docker-compose  up  -d

# docker-compose  ps

# docker-compose exec App1  bash

# docker-compose restart  App1

# docker-compose stop  App1

# docker-compose stop

# docker-compose start

docker-compose管理daocker的更多相关文章

  1. Docker学习笔记之使用 Docker Compose 管理容器

    0x00 概述 通过之前的介绍,我们已经基本掌握了构建.运行容器的方法,但这还远远不够,由于 Docker 采用轻量级容器的设计,每个容器一般只运行一个软件,而目前绝大多数应用系统都绝不是一个软件所能 ...

  2. [Docker6] Docker compose多容器运行与管理

    六.Docker compose docker compose就是通过yml文件来定义和运行多个容器docker应用程序的工具,三步过程就能跑起一个compose: 定义应用程序的环境(yml中) 定 ...

  3. Docker Compose 原理

    Docker 的优势非常明显,尤其是对于开发者来说,它提供了一种全新的软件发布机制.也就是说使用 docker 镜像作为软件产品的载体,使用 docker 容器提供独立的软件运行上下文环境,使用 do ...

  4. Docker 三剑客之 Docker Compose

    Docker Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排,开源地址:https://github.com/docker/compose Dock ...

  5. Docker Compose 部署前后端分离应用

    部署前后端分离应用 容器化 Abp 应用 关于 Abp 应用的容器化,其实和普通的 ASP.NET Core 应用差不多,大家可以参考我此前的文章. 唯一需要注意的是:因为 Abp 解决方案中有多个项 ...

  6. Docker compose学习笔记

    一.compose compose 作用 你的应用可能需要很多个服务,比如web服务,数据库服务,缓存服务等等.我们可以把这些服务放到单独的容器里面,如果手工去配置这些服务会有些麻烦,docker c ...

  7. .NET遇上Docker - 使用Docker Compose组织Ngnix和.NETCore运行

    本文工具准备: Docker for Windows Visual Studio 2015 与 Visual Studio Tools for Docker 或 Visual Studio 2017 ...

  8. Docker-compose 多个Docker容器管理:以MYSQL和Wordpress为例

    搬砖的陈大师版权所有,转载请注明:http://www.lenggirl.com/tool/docker-compose.html Docker-compose 多个Docker容器管理:以MYSQL ...

  9. Docker系列三:Docker容器管理

    Docker容器管理 1. 单一容器管理 1) 容器的启动 $ docker run --name gitlab-redis -d --volume /srv/docker/gitlab/redis: ...

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

    前两篇文章我们介绍了 Dockerfile 的使用Docker(二):Dockerfile 使用介绍,我们知道使用一个 Dockerfile 模板文件可以定义一个单独的应用容器,如果需要定义多个容器就 ...

随机推荐

  1. VS2010+Oracle11+Entity Framework4.1环境搭建及常见问题

    在微软的实体数据模型中存在四种查询方式: SQL字符串:Linq:Linq to SQL:Linq to Entity(ESQL) 对于Linq SQL目前微软虽然仍在支持,但微软已经声明不再推荐. ...

  2. radom

    radom模块提供了随机生成对象的方法 Help on module random: NAME random - Random variable generators. FILE /usr/local ...

  3. 百分之 95% 的程序员不知道 Trending 是什么。

    前言如果学习到的知识不成体系,那么遇到问题时就会非常难解决.常有人问你从哪里了解新技术怎么判断其发展趋势的,除了关注 Hacker News 以及庞大的 Awesome 还有没有其它方式?有啊当然是每 ...

  4. .net core grpc consul 实现服务注册 服务发现 负载均衡(二)

    在上一篇 .net core grpc 实现通信(一) 中,我们实现的grpc通信在.net core中的可行性,但要在微服务中真正使用,还缺少 服务注册,服务发现及负载均衡等,本篇我们将在 .net ...

  5. SQL Server2008 R2 数据库镜像实施手册(双机)

    一.配置主备机 1. 服务器基本信息 主机名称为:HOST_A,IP地址为:192.168.1.155 备机名称为:HOST_B,IP地址为:192.168.1.156 二.主备实例互通 实现互通可以 ...

  6. C#操作字符串之常用函数总结

    1:使用string.Join 泛型集合快速转换拼接字符串. 2:使用 string.Split 将字符串截断转换成字符数组. 3:使用 string.Substring,string.Remove ...

  7. Cordova - 彻底搞定安卓中的微信支付插件!

    Cordova:8.0.0 Android studio:3.2.1 cordova-plugin-adam-wechat : 3.0.6 你看到这个标题肯定会惊讶,一个Cordova的微信支付插件, ...

  8. 任务查询系统(cqoi2015,bzoj3932)(主席树)

    最近实验室正在为其管理的超级计算机编制一套任务管理系统,而你被安排完成其中的查询部分.超级计算机中的 任务用三元组\((S_i,E_i,P_i)\)描述,\((S_i,E_i,P_i)\)表示任务从第 ...

  9. Python 将一个已知的 utc时间字符串 转换为东八区时间

    先获取一个utc格式的时间 utc_time = datetime.datetime.utcnow() print(utc_time) 输出 2018-06-24T08:59:39Z 这里我们假设目前 ...

  10. java-斐波那契数列的解法

    public class Feibo { static long[] temp = new long[1000000]; static long fun1(int n){ if(temp[n]!=0) ...