一. Ubuntu16.04+Django+Redis+Nginx的Web项目Docker化

1.创建Django项目的image

# 创建项目image 执行 docker build -t ccnu_resource_pub -f docker/app/Dockerfile .
# 把ubuntu:xenial作为基础镜像 如果不存在则pull远程
FROM ubuntu:xenial # 把docker/common/sources.list 拷贝到镜像里的文件系统中
ADD ./docker/common/sources.list /etc/apt/sources.list # 运行linux指令
RUN apt-get -y update # PYTHON环境
WORKDIR /proj
# 把requirements.txt拷贝到/proj文件下
ADD requirements.txt /proj
RUN apt-get install -y python python-dev python3 python3-dev python3-pip
RUN apt-get install -y libmysqlclient-dev
RUN pip3 install --trusted-host pypi.python.org -r requirements.txt
RUN pip3 install uwsgi # ES日志目录
RUN mkdir -p /var/log/ccnu_resource
RUN chmod -R 777 /var/log/ccnu_resource

2.创建Nginx的image

# 创建nginx的image  docker build -t ccnu_resource_pub_nginx -f docker/nginx/Dockerfile .

FROM ubuntu:xenial

ADD ./docker/common/sources.list /etc/apt/sources.list

RUN apt-get -y update && apt-get -y update --fix-missing && apt-get -y update

RUN apt-get install -y nginx

3.创建Redis的image

# 创建Redis的image   docker build -t ccnu_resource_pub_redis -f docker/redis/Dockerfile .

FROM ubuntu:xenial

ADD ./docker/common/sources.list /etc/apt/sources.list
RUN apt-get -y update && apt-get -y update --fix-missing && apt-get -y update RUN apt-get install -y redis-server

4.创建docker-compose.yml

# version表示定义的 docker-compose.yml 文件内容所采用的版本,目前 Docker Compose 的配置文件已经迭代至了第三版
version: "3" # docker-compose.yml 的核心部分,定义了容器的各项细节
services:
redis:
# 指定镜像
image: ccnu_resource_pub_redis:latest
# 端口映射 最好使用引号将端口映射的定义包裹起来,由于 YAML 格式对 xx:yy 这种格式的解析有特殊性,在设置小于 60 的值时,会被当成时间而不是字符串来处理
ports:
- "6379:6379"
command: redis-server --appendonly yes
logging:
driver: "json-file"
options:
max-size: "200k"
max-file: "10" web:
image: ccnu_resource_pub:latest
ports:
- "8000:8000"
command: python3 manage.py runserver 0.0.0.0:8000
logging:
driver: "json-file"
options:
max-size: "200k"
max-file: "10"
# 以 Compose 配置文件为中心的相对路径作为数据卷挂载到容器
volumes:
- .:/proj # 依赖 表示启动web的compose前需先启动 redis
depends_on:
- redis celery:
image: ccnu_resource_pub:latest
command: celery worker -A ccnu_resource -l info
logging:
driver: "json-file"
options:
max-size: "200k"
max-file: "10"
depends_on:
- web
volumes:
- .:/proj

二. 单机ELK部署Docker化

1. 进入ELK的docker网址(可能要翻墙) https://www.docker.elastic.co/,选择最新稳定版6.54版

使用官方提供的docker-compose.yml创建ES的docker-compose.yml

version: '2.2'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:6.5.4
container_name: elasticsearch
environment:
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata1:/usr/share/elasticsearch/data
ports:
- 9200:9200
networks:
- esnet
elasticsearch2:
image: docker.elastic.co/elasticsearch/elasticsearch:6.5.4
container_name: elasticsearch2
environment:
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- "discovery.zen.ping.unicast.hosts=elasticsearch"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata2:/usr/share/elasticsearch/data
networks:
- esnet volumes:
esdata1:
driver: local
esdata2:
driver: local networks:
esnet:

2. 然后进入配置页面https://www.elastic.co/guide/en/logstash/6.5/docker-config.html, 查看Logstash的docker配置

 logstash:
image: docker.elastic.co/logstash/logstash:6.5.4
container_name: logstash
networks:
- esnet
depends_on:
- elasticsearch
- elasticsearch2
environment:
- "LS_JAVA_OPTS=-Xms512m -Xmx512m"

3. 然后进入配置页面https://www.elastic.co/guide/en/kibana/6.5/docker.html, 查看Kibana的docker配置

 kibana:
image: docker.elastic.co/kibana/kibana:6.5.4
container_name: kibana
ports:
- "5601:5601"
networks:
- esnet
depends_on:
- elasticsearch
- elasticsearch2

4. 整合docker-compose.ym

version: '2.2'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:6.5.4
container_name: elasticsearch
environment:
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata1:/usr/share/elasticsearch/data
ports:
- 9200:9200
networks:
- esnet
elasticsearch2:
image: docker.elastic.co/elasticsearch/elasticsearch:6.5.4
container_name: elasticsearch2
environment:
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- "discovery.zen.ping.unicast.hosts=elasticsearch"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata2:/usr/share/elasticsearch/data
networks:
- esnet
logstash:
image: docker.elastic.co/logstash/logstash:6.5.4
container_name: logstash
networks:
- esnet
depends_on:
- elasticsearch
- elasticsearch2
environment:
- "LS_JAVA_OPTS=-Xms512m -Xmx512m"
kibana:
image: docker.elastic.co/kibana/kibana:6.5.4
container_name: kibana
ports:
- "5601:5601"
networks:
- esnet
depends_on:
- elasticsearch
- elasticsearch2 volumes:
esdata1:
driver: local
esdata2:
driver: local networks:
esnet:

配置好后,执行sudo docker-compose up即可成功启动ELK

开发环境中Docker的使用的更多相关文章

  1. vagrant特性——基于docker开发环境(docker和vagrant的结合)-1-基本使用

    Docker vagrant提供了使用Docker作为provider(其他的provider有virtualBox.VMware\hyper-V等)的开箱即用支持.这允许你的开发环境由Docker容 ...

  2. Idea开发环境中搭建Maven并且使用Maven打包部署程序

    1.配置Maven的环境变量 a.首先我们去maven官网下载Maven程序,解压到安装目录,如图所示: b.配置M2_HOME的环境变量,然后将该变量添加到Path中 备注:必须要有JAVA_HOM ...

  3. Wabpack系列:在webpack+vue开发环境中使用echarts导致编译文件过大怎么办?

    现象,在一个webpack+vue的开发环境中,npm install echarts --save了echarts,然后在vue文件中直接使用 import echarts from 'echart ...

  4. 开发环境中biztalk项目设置注意事项(转)

      适用版本:biztalk 2006 适用环境:开发测试环境 在开发过程中,在开发环境中,一定会是一个对项目不断的修改.编译.部署.测试,查看测试结果,发现有问题,然后回到开发环境再修改.编译.部署 ...

  5. 将linux用在开发环境中

    我是如何将linux用在开发环境中的 1.为什么不直接安装Linux在主机 一直想深入学习一下linux的使用,于是将家里的笔记本装了linux系统,但是要将自己的系统打造一个适合开发的环境确实是一件 ...

  6. Spark Streaming揭秘 Day28 在集成开发环境中详解Spark Streaming的运行日志内幕

    Spark Streaming揭秘 Day28 在集成开发环境中详解Spark Streaming的运行日志内幕 今天会逐行解析一下SparkStreaming运行的日志,运行的是WordCountO ...

  7. 在CodeBlocks 开发环境中配置使用OpenCV (ubuntu系统)

    CodeBlocks是一个开放源代码的全功能的跨平台C/C++集成开发环境.CodeBlocks由纯粹的C++语言开发完毕,它使用了蓍名的图形界面库wxWidgets.对于追求完美的C++程序猿,再也 ...

  8. 如何将linux用在开发环境中的

    如何将linux用在开发环境中的 1.我为什么要写这篇文章 一直想深入学习一下linux的使用,于是将家里的笔记本装了linux系统,但是要将自己的系统打造一个适合开发的环境确实是一件费心费力的事,而 ...

  9. C# 动态加载组件后怎么在开发环境中调试

    动态加载组件 那就是简单的Assembly.Load动态加载dll而以.这网上资料也有不少.基本的思路基本上就是在本地上一个指定目录如[plugs]存在着一堆dll文件.主程序在初始运行时一般会把指定 ...

随机推荐

  1. DEV 控件使用之:TreeList

    使用DEV控件也有一段时间了,一直想写点东西.最近又使用到TreeList控件,这个控件对于刚使用的人来说确实不好掌握.我想把自己知道的写下来,让还不熟悉的慢慢学会使用,对于会使用的大家交流下.如果有 ...

  2. [Luogu P1119]灾后重建

    这是一道考Floyd本质的题. 回忆一下Floyd的原理,三层循环,最外层循环枚举的是中转点,也就是用两点到中转点距离之和来更新最短路.然后来看下题目,重建时间是按照从小到大排序的,也就是说,当第i个 ...

  3. linux 查看/修改jdk版本

    linux 查看/修改jdk版本 配置环境变量vim /etc/profile 编辑profile文件 在底部加入JAVA_HOME=/usr/java/jdk1.8PATH=$JAVA_HOME/b ...

  4. python捕获异常及方法总结

    调试Python程序时,经常会报出一些异常,异常的原因一方面可能是写程序时由于疏忽或者考虑不全造成了错误,这时就需要根据异常Traceback到出错点,进行分析改正:另一方面,有些异常是不可避免的,但 ...

  5. 20165221 《网络对抗技术》EXP1 PC平台逆向破解

    20165221 <网络对抗技术>EXP1 PC平台逆向破解 一.实验内容 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函 ...

  6. Linux initramfs说明

    1.前言 最近在尝试对手头的开发板进行移植,此处记录initramfs挂载的基本流程,记录一下,以备后查.分析时是基于linux3.4.2 2. rootfs的挂载 start_kernel-> ...

  7. 题解 P3246 【[HNOI2016]序列】

    很久之前做过这道题,但是跑得贼慢,现在用了可以被卡成 n m 的笛卡尔树做法,发现跑得贼快[雾 noteskey 介绍一种复杂度错误然鹅在随机数据下跑得贼快的算法: 笛卡尔树 方法就是 \(O~ n\ ...

  8. CSScript 使用纪要

    CSScript 运行C#脚本的开源项目,在笔者简要使用过程中,遇到了一些问题,现简单记录. 1. CS0433 使用非基本类型 当遇到 CS0433错误,提示 type is defined mul ...

  9. Centos6.8 yum安装MySQL5.6

    第一步:安装仓库wget http://repo.mysql.com//mysql57-community-release-el6-8.noarch.rpmrpm -ivh mysql-communi ...

  10. 【python】【logging】python日志模块logging常用功能

    logging模块:应用程序的灵活事件日志系统,可以打印并自定义日志内容 logging.getLogger 创建一个log对象 >>> log1=logging.getLogger ...