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. 转:getContextPath、getServletPath、getRequestURI的区别

    假定你的web application 名称为news,你在浏览器中输入请求路径: http://localhost:8080/news/main/list.jsp 则执行下面向行代码后打印出如下结果 ...

  2. JAVA实现WC.exe功能

    项目要求 实现一个统计程序,它能正确统计程序文件中的字符数.单词数.行数,以及还具备其他扩展功能,并能够快速地处理多个文件. 具体功能要求: 程序处理用户需求的模式为: wc.exe [paramet ...

  3. 用Java取指定时区的时间 北京时间,纽约时间,班加罗尔时间

    /** * 取北京时间 * @return */ public static String getBeijingTime(){ return getFormatedDateString(8); } / ...

  4. Django报错:ConnectionAbortedError: [WinError 10053] 你的主机中的软件中止了一个已建立的连接。

    ajax请求时加上 async : false, $.ajax({ url:"{% url 'article:article_post' %}", {#一定不要写成小写了,坑了好久 ...

  5. ADO.NET系列之Command对象

    ADO.NET系列之Connection对象 ADO.NET系列之Command对象 ADO.NET系列之DataAdapter对象 ADO.NET系列之事务和调用存储过程 上一篇<ADO.NE ...

  6. datagridview 代码添加列

    int column_key = 0; private DataGridViewTextBoxColumn column_add(string name) { DataGridViewTextBoxC ...

  7. AtomicBoolean

    它的两种用法: 1.保证某段语句只执行一次. 首先我们要知道compareAndSet的作用,判断对象当时内部值是否为第一个参数,如果是则更新为第二个参数,且返回ture,否则返回false.那么默认 ...

  8. 891. Sum of Subsequence Widths

    Given an array of integers A, consider all non-empty subsequences of A. For any sequence S, let the  ...

  9. P3175 [HAOI2015]按位或

    传送门 一如既往膜拜shadowice巨巨 前置姿势我就没一个会的-- //minamoto #include<bits/stdc++.h> #define R register #def ...

  10. Flask 中的 Response

    1.Flask中的HTTPResponse @app.route("/") # app中的路由route装饰器 def index(): # 视图函数 return "I ...