一. 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

View Code

2.创建Nginx的image

# 创建nginx的image  docker build -t ccnu_resource_pub_nginx -f docker/nginx/Dockerfile .FROM ubuntu:xenialADD ./docker/common/sources.list /etc/apt/sources.listRUN apt-get -y update && apt-get -y update --fix-missing && apt-get -y updateRUN apt-get install -y nginx

View Code

3.创建Redis的image

# 创建Redis的image   docker build -t ccnu_resource_pub_redis -f docker/redis/Dockerfile .FROM ubuntu:xenialADD ./docker/common/sources.list /etc/apt/sources.list
RUN apt-get -y update && apt-get -y update --fix-missing && apt-get -y updateRUN apt-get install -y redis-server

View Code

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 yeslogging:driver: "json-file"options:max-size: "200k"max-file: "10"web:image: ccnu_resource_pub:latestports:- "8000:8000"command: python3 manage.py runserver 0.0.0.0:8000logging:driver: "json-file"options:max-size: "200k"max-file: "10"
# 以 Compose 配置文件为中心的相对路径作为数据卷挂载到容器volumes:- .:/proj# 依赖 表示启动web的compose前需先启动 redisdepends_on:- rediscelery:image: ccnu_resource_pub:latestcommand: celery worker -A ccnu_resource -l infologging:driver: "json-file"options:max-size: "200k"max-file: "10"depends_on:- webvolumes:- .:/proj

View Code

二. 单机ELK部署Docker化

1. 进入ELK的docker网址(可能要FQ) 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.4container_name: elasticsearchenvironment:- cluster.name=docker-cluster- bootstrap.memory_lock=true- "ES_JAVA_OPTS=-Xms512m -Xmx512m"ulimits:memlock:soft: -1hard: -1volumes:- esdata1:/usr/share/elasticsearch/dataports:- 9200:9200networks:- esnetelasticsearch2:image: docker.elastic.co/elasticsearch/elasticsearch:6.5.4container_name: elasticsearch2environment:- cluster.name=docker-cluster- bootstrap.memory_lock=true- "ES_JAVA_OPTS=-Xms512m -Xmx512m"- "discovery.zen.ping.unicast.hosts=elasticsearch"ulimits:memlock:soft: -1hard: -1volumes:- esdata2:/usr/share/elasticsearch/datanetworks:- esnetvolumes:esdata1:driver: localesdata2:driver: localnetworks:esnet:

View Code

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

 logstash: image: docker.elastic.co/logstash/logstash:6.5.4container_name: logstash networks:- esnetdepends_on: - elasticsearch- elasticsearch2environment:- "LS_JAVA_OPTS=-Xms512m -Xmx512m"

View Code

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

 kibana:image: docker.elastic.co/kibana/kibana:6.5.4container_name: kibanaports:- "5601:5601"networks:- esnetdepends_on:- elasticsearch- elasticsearch2

View Code

4. 整合docker-compose.ym

version: '2.2'
services:elasticsearch:image: docker.elastic.co/elasticsearch/elasticsearch:6.5.4container_name: elasticsearchenvironment:- cluster.name=docker-cluster- bootstrap.memory_lock=true- "ES_JAVA_OPTS=-Xms512m -Xmx512m"ulimits:memlock:soft: -1hard: -1volumes:- esdata1:/usr/share/elasticsearch/dataports:- 9200:9200networks:- esnetelasticsearch2:image: docker.elastic.co/elasticsearch/elasticsearch:6.5.4container_name: elasticsearch2environment:- cluster.name=docker-cluster- bootstrap.memory_lock=true- "ES_JAVA_OPTS=-Xms512m -Xmx512m"- "discovery.zen.ping.unicast.hosts=elasticsearch"ulimits:memlock:soft: -1hard: -1volumes:- esdata2:/usr/share/elasticsearch/datanetworks:- esnetlogstash: image: docker.elastic.co/logstash/logstash:6.5.4container_name: logstash networks:- esnetdepends_on: - elasticsearch- elasticsearch2environment:- "LS_JAVA_OPTS=-Xms512m -Xmx512m"kibana:image: docker.elastic.co/kibana/kibana:6.5.4container_name: kibanaports:- "5601:5601"networks:- esnetdepends_on:- elasticsearch- elasticsearch2volumes:esdata1:driver: localesdata2:driver: localnetworks:esnet:

View Code

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

转载于:https://www.cnblogs.com/FG123/p/10091729.html

开发环境中Docker的使用相关推荐

  1. IFTTT在开发环境中使用Docker的经验

    本文讲的是IFTTT在开发环境中使用Docker的经验,[编者的话]IFTTT是"if this then that"的缩写,事实上是让你的网络行为能够引发连锁反应.让你使用更为方 ...

  2. spring boot 与 iview 前后端分离架构之开发环境基于docker的部署的实现(三十六)

    spring boot 与 iview 前后端分离架构之开发环境基于docker的后端的部署的实现(三十六) 公众号 基于docker的后端的部署 安装mysql数据库 创建数据库 安装redis 安 ...

  3. Thonny开发环境中显示数据曲线

    ▌01 开发MicroPython环境 1.简介 MicroPython 是一款运用在单片机上PYthon3 的版本,基于他对于MCU的开发就变成的非常容易.使用 安装 Thonny 软件环境开发PI ...

  4. 开发环境中实现Lombok消除Java冗余

    Lombok是一种JavaArchive(JAR)文件,可用来消除Java代码的冗长.通过在开发环境中实现Lombok,开发人员可以节省构建诸如hashCode()和equals()这样的方法以及以往 ...

  5. SharePoint【调试,诊错系列】-- 开发环境中不同调试对象的Attach方式

    在Sharepoint的开发环境中调试不同的对象有时需要Attach到不同的进程,下面就是一些常见的情况    1.Farm Solution     -----W3WP.EXE    2.SandB ...

  6. python运行程序的快捷键_在Python集成开发环境中,可使用快捷键()运行程序。...

    在Python集成开发环境中,可使用快捷键()运行程序. 更多相关问题 如何理解创新能力测试与创新能力的关系? 直埋线路与埋式电力电缆电压<35kv平行时最小间距为(). 放射性物品装卸作业时, ...

  7. oracle vm安装增强功能,Linux 开发环境中为VirtualBox安装增强功能

    VirtualBox安装CentOS后,再安装增强功能就可以共享文件夹.粘贴板以及鼠标无缝移动,主要步骤如下: 1.yum -y update 2.yum -y install g++gcc gcc- ...

  8. virtual box linux 安装增强功能,Linux 开发环境中为VirtualBox安装增强功能

    VirtualBox安装CentOS后,再安装增强功能就可以共享文件夹.粘贴板以及鼠标无缝移动,主要步骤如下: 1.yum -y update 2.yum -y install g++gcc gcc- ...

  9. Vue---vue-cli 中的proxyTable解决开发环境中的跨域问题

    Vue---vue-cli 中的proxyTable解决开发环境中的跨域问题 参考文章: (1)Vue---vue-cli 中的proxyTable解决开发环境中的跨域问题 (2)https://ww ...

最新文章

  1. mysql 集群 备份_mysql cluster集群备份还原
  2. ORA-32004错误的解决方法
  3. YOLO训练Pedestrain
  4. Windows Server2008下MYSQL外网无法访问问题解决
  5. 万物智联时代的终端智能「管家」重磅升级:混合云IoT一体机
  6. glClearDepth
  7. java商城_java网上商城系统怎么样?优势又有哪些?
  8. 核聚变可能应用于汽车 你以为这是个玩笑吗?
  9. 那些和闰年相关的 Bug
  10. .net 反编译_向.net/Unity 程序员推荐一个十分因吹斯听的网站:sharplab.io
  11. python3 asyncio 不阻塞_Python中的并发处理之asyncio包使用的详解
  12. [tp3.2.1]让默认页面: 加载Home模块的Index控制器;而让admin.php默认去加载Admin模块的Adminc控制器....
  13. 现代控制理论(一)控制系统的状态空间描述
  14. 网页或PDF等复制文本的格式快速规范
  15. 计算机vfp知识要点,2017年职称计算机VisualFoxPro基础知识:表的基本操作
  16. 71 Climbing staring C++
  17. java实现APP版本比对工具类
  18. codeforces round#517
  19. 软件开发工程师 - 面试手册
  20. MFC比较好的一篇文章

热门文章

  1. Linux下C程序进程地址空间布局
  2. Java 方法使用总结(重载、数组输出、enum和switch、foreach和迭代器、可变长度参数、重载中使用可变长度参数)
  3. Mysql批量更新的三种方式
  4. 大数据学习——免密登录配置
  5. python3 判断大小端的一种方法
  6. BZOJ3597 [Scoi2014]方伯伯运椰子 【二分 + 判负环】
  7. 【Web应用-FTP】FTP 容量显示说明
  8. MongoDB查询用法大全
  9. [转]粤语发音字典-粤语翻译
  10. 电信版iPhone 4S最低套餐49元