Docker多容器实践

转载 2015年07月07日 14:31:35

今天参考《docker第一本书》做了一个多容器实践,其架构为:
1.一个Node容器,实现一个简单的web服务
2.一个Redis master,两个Redis slave
3.一个logstash监控日志

一.部署node.js
通过wget下载https://raw.githubusercontent.com/jamtur01/dockerbook-code/master/code/6/node/nodejs/nodeapp/package.jsonhttps://raw.githubusercontent.com/jamtur01/dockerbook-code/master/code/6/node/nodejs/nodeapp/server.js
其中server.js会启动Express,然后把session存放至host名为redis_primary的redis里面

Dockerfile:
FROM ubuntu:14.04
RUN apt-get -yqq update
RUN apt-get -yqq install nodejs npm
RUN ln -s /usr/bin/nodejs /usr/bin/node
RUN mkdir -p /var/log/nodeappADD nodeapp /opt/nodeapp/

WORKDIR /opt/nodeapp
RUN npm install
VOLUME [“/var/log/nodeapp”]

EXPOSE 3000

ENTRYPOINT [“nodejs”,”server.js”]

构建镜像:docker build -t learn01/nodejs .

二.部署redis基础镜像
Dockerfile:
FROM ubuntu:14.04
RUN apt-get -yqq update
RUN apt-get install -yqq software-properties-common python-software-properties
RUN add-apt-repository ppa:chris-lea/redis-server
RUN apt-get -yqq update
RUN apt-get -yqq install redis-server redis-tools

VOLUME [“/var/lib/redis”,”/var/log/redis/”]
EXPOSE 6379
CMD []

构建:docker build -t learn01/redis_base .

三.Redis主镜像
Dockerfile:
FROM learn01/redis_base
ENTRYPOINT [“redis-server”,”–logfile /var/log/redis/redis-server.log”]

构建:docker build -t learn01/redis_primary .

四.Redis从镜像
Dockerfile:
FROM learn01/redis_base
ENTRYPOINT [“redis-server”,”–logfile /var/log/redis/redis-replica.log”,”–slaveof redis_primary 6379”]

构建:docker build -t learn01/redis_replica .

五.创建redis集群
1)启动redis master
docker run -d -h redis_primary –name redis_primary learn01/redis_primary
查看其日志:
docker run -ti –rm –volumes-from redis_primary ubuntu cat /var/log/redis/redis-server.log

2)创建redis slave
docker run -d -h redis_replica1 –name redis_replica1 –link redis_primary:redis_primary learn01/redis_replica
docker run -d -h redis_replica2 –name redis_replica2 –link redis_primary:redis_primary learn01/redis_replica

查看slave日志:
docker run -ti –rm –volumes-from redis_replica1 ubuntu cat /var/log/redis/redis-replica.log
docker run -ti –rm –volumes-from redis_replica2 ubuntu cat /var/log/redis/redis-replica.log

六.创建Node容器
docker run -d –name nodeapp -p 3000:3000 –link redis_primary:redis_primary learn01/nodejs

相关文章推荐

京东Docker容器实践

  • 2017年07月11日 15:08
  • 1.87MB
  • 下载

网易蜂巢容器公有云的Docker实践

  • 2017年07月11日 15:30
  • 2.11MB
  • 下载

Docker实践(二):容器的管理(创建、查看、启动、终止、删除)

docker官方文档地址如下:[https://docs.docker.com/engine/reference/](https://docs.docker.com/engine/reference/...

基于阿里云容器服务的微服务实践 - Part 2. Docker Compose

基于阿里云容器服务的微服务实践 - Part 2. Docker Compose作者:chszs,未经博主允许不得转载。经许可的转载需注明作者和博客主页:http://blog.csdn.net/ch...
  • chszs
  • chszs
  • 2017年02月10日 12:26
  • 916

Flume Kafka收集Docker容器内分布式日志应用实践

1 背景和问题 随着云计算、PaaS平台的普及,虚拟化、容器化等技术的应用,例如Docker等技术,越来越多的服务会部署在云端。通常,我们需要需要获取日志,来进行监控、分析、预测、统计等工作,但是云...

Docker实践7:容器与主机拷贝数据

在Docker实践2中使用-v参数将主机与容器中相关目录联系在一起(挂载),所以我们可以用这个通道将想要互相拷贝的数据放入其中,这样就可以用cp命令来复制文件了。 除了这个办法,我们还可以分别用...

基于阿里云容器服务的微服务实践 - Part 1. 微服务与Docker

基于阿里云容器服务的微服务实践 - Part 1. 微服务与Docker作者:chszs,未经博主允许不得转载。经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs从...
  • chszs
  • chszs
  • 2017年02月09日 12:24
  • 3930

《云计算架构技术与实践》读书笔记(五):Docker 容器及其调度

5.1容器典型应用场景 Docker技术的出现和迅猛发展,已成为云计算产业的新的热点。容器使用范围也由互联网厂商快速向传统企业扩展,大量传统企业开始测试和尝试部署容器云。相比于企业对容器技术的逐步接...
  • a724888
  • a724888
  • 2017年07月19日 17:12
  • 347

CoreOS实践指南(七):Docker容器管理服务

在“漫步云端:CoreOS实践指南”系列的前几篇文章中,ThoughtWorks的软件工程师林帆主要介绍了CoreOS及其相关组件和使用。说到CoreOS,不得不提Docker。当Docker还名不见...

CentOS 7 开源的应用容器引擎Docker基本特性入门实践

本文标签:  centos 深度学习 Docker hadoop 互联网杂谈 Docker是一个开源的应用容器引擎,开发人员可以非常容易地打包已经开发好的应用,同时将应用相关的依赖包也打...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Docker多容器实践
举报原因:
原因补充:

(最多只允许输入30个字)