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. DXDBGrid使用方法

    http://www.cnblogs.com/gtsup/archive/2012/08/28/2660197.html dxDBGrid使用集锦   转载自:http://hi.baidu.com/ ...

  2. Elasticsearch 在 windows 和 ubuntu 下详细安装过程

    1. 前言 作为一名 .NET 平台开发者,选择开发框架时总会面临更多的局限性,不过对于搜索这种刚需服务来说,开源框架可供选择的余地还是比较大的.笔者之前用的是 Lucene.net ,现在深感其使用 ...

  3. c# 控制台应用程序怎么隐藏黑窗口

    class Program     {         [DllImport("user32.dll", EntryPoint = "ShowWindow",  ...

  4. Dependency injection configurations into views in asp.net core

    本文展示如何在ASP.NET Core MVC Application Razor视图中注入和使用应用程序的配置信息. 将配置信息添加到appsettings.json中: { "Loggi ...

  5. javascript js 完美解决 click 与 dblclick 冲突,并且不会导致click延迟

    示例代码: marker.addEventListener("click", function(){ if (!window.markerClicked) { window.mar ...

  6. Socket网络编程(TCP/IP/端口/类)和实例

    Socket网络编程(TCP/IP/端口/类)和实例 原文:C# Socket网络编程精华篇 转自:微冷的雨 我们在讲解Socket编程前,先看几个和Socket编程紧密相关的概念: TCP/IP层次 ...

  7. 第三章 CopyOnWriteArrayList源码解析

    注:在看这篇文章之前,如果对ArrayList底层不清楚的话,建议先去看看ArrayList源码解析. http://www.cnblogs.com/java-zhao/p/5102342.html ...

  8. Linux快速学习系列

    这篇文章会随着学习的进行,不断的更新!!! 总结 操作系统引入的抽象概念 进程(process) 地址空间(address space) 虚拟内存(virtual memory) 操作系统引入的cah ...

  9. mysql中date,datetime,timestamp数据类型区别

    (1)date表示日期,其范围为1000-01-01到9999-12-31 (2)datetime表示日期时间,其范围是1000-01-01 00:00:00到9999-12-31 23:59:59 ...

  10. (samba启动失败)smb.service: main process exited, code=exited, status=1/FAILURE

    按照指示,前往:journalctl -xe 没什么发现,搜的时候有人说也可以查看 journalctl -r 打出来之后我也看不出什么门道来 又看到有人说 smb 方面可以看看 testparm 我 ...