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多容器部署

docker的大名相信大家已经耳熟能详, 这个已经风靡了2年+的神器,今天我们也来把玩下. 这里必须贴下docker的标志性logo,虽然有过几次变迁,但集装箱没变,这艘鲸鱼般的大船也没变,装(bu...
  • Jawfneo
  • Jawfneo
  • 2016年09月12日 22:52
  • 1388

Docker容器的多应用开机启动

原文地址:http://blog.csdn.net/nisxiya/article/details/42964901 在普通的Ubuntu系统中,只需要将自己需要开机启动的脚本写在 /etc...
  • tanga842428
  • tanga842428
  • 2017年06月10日 11:34
  • 419

Docker实践-安装Docker并在容器里运行tomcat

随着微服务的流行,Docker越来越流行,正如它的理念”Build, Ship, and Run Any App, Anywhere”一样,Docker提供的容器隔离技术使得开发人员不用再去理清ser...
  • boonya
  • boonya
  • 2017年05月24日 16:40
  • 636

平安容器云平台 Padis--传统金融企业的 Docker 实践

平安容器云平台 Padis 架构实践
  • u010646653
  • u010646653
  • 2016年11月09日 13:57
  • 1339

Docker整理之Docker容器连接(link)与Docker容器数据管理(volumn)(四)

Docker容器连接 端口映射并不是唯一把docker连接到另一个容器的方法。docker有一个连接系统允许将多个容器连接在一起,共享连接信息。docker连接会创建一个父子关系,其中父容器可以看到...
  • u014788227
  • u014788227
  • 2016年10月19日 14:27
  • 1570

[docker]容器互联的两种方式

声明:本博客欢迎转发,但请保留原作者信息!博客地址:http://blog.csdn.net/halcyonbaby内容系本人学习、研究和总结,如有雷同,实属荣幸!link方式通过link方式创建容器...
  • halcyonbaby
  • halcyonbaby
  • 2014年12月23日 22:54
  • 21595

docker 给运行中的容器设置端口映射

DOCKER 给运行中的容器添加映射端口 方法1 1、获得容器IP 将container_name 换成实际环境中的容器名 docker inspect `container_name` | ...
  • libraryhu
  • libraryhu
  • 2016年09月05日 20:39
  • 19823

Docker 中如何连接多个 Container 协同工作

在Docker使用部分我们接触到了通过网络端口来连接运行在Docker容器内的服务。这是同Docker容器内服务和应用互动的方法之一。在这一节中,我们将带你复习一下通过网络端口连接到Docker容器并...
  • u013091013
  • u013091013
  • 2017年04月17日 10:26
  • 714

五阿哥钢铁平台Docker容器云平台建设经验分享——你想知道的这里都有!!

摘要 五阿哥钢铁电商平台(www.wuage.com)是由钢铁行业第一的中国五矿与互联网第一的阿里巴巴联手打造,并充分运用双方股东优势资源,即:阿里巴巴在大数据、电商运营、互联网产品技术上的巨大优势...
  • RancherLabs
  • RancherLabs
  • 2018年01月27日 16:46
  • 208

Docker 使用指南 (六)—— 使用 Docker 部署 Django 容器栈

使用 Docker 部署 Django 应用程序 本次实验环境:腾讯云服务器 CentOS 6.7 x86_64 由于 Docker Hub 的镜像在国内下载速度非常慢,所以此...
  • u010884123
  • u010884123
  • 2017年02月15日 18:02
  • 830
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Docker多容器实践
举报原因:
原因补充:

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