码迷,mamicode.com
首页 > 其他好文 > 详细

Docker-3 尝试Docker 应用栈

时间:2016-03-23 06:31:20      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:

Note :

  1)  Docker 的设计理念: 一个Container 只运行 一个 进程 ,即 : 只提供一种服务

  2) 一般对于一个应用而言,单一的容器,是无法满足要求, 通常需要 多个容器,分别 提供不同的服务,并在 不同的容器间进行 通信 , 这就形成了 docker 集群

  基于 docker 集群构建的 应用 ,称之为 docker app stacj

 

ENV : django  + redis+ haproxy + ubuntu  , 【 A web application 】

step 1: pull images

    #docker pull django

    #docker pull redis

    #docker pull ubuntu

    #docker pull haproxy

    // check images 

    #docker images

step 2:  links : 建立 容器间的 互联关系

  #docker run  --name console ---link redis:redis ubuntu bash

step 3 : start 

  Note : 一定 要理清 容器的 启动顺序

    这里是 redis-master --> redis-slave --> App [ django ] --> HAProxy

  #docker run -it --name redis-maser redis /bin/bash

  #docker run -it --name redis-slave1 --link redis-master:master redis /bin/bash

  //--link redis-master:master  需要使用 redis-master 容器,并将之 重命名为 maste

  #docker run -it --name redis-slave2 --link redis-master:master redis /bin/bash

  #sudo docker run -it --name App1 --link redis-master:db -v ~/projects/app1:/usr/src/app django /bin/bash

  #sudo docker run -it --name App2 --link redis-master:db -v ~/projects/app2:/usr/src/app django /bin/bash

  

  #docker ps  

step 4 :config redis && django 

  1) redis master

    #valum_redis_master=`sudo docker inspect --format "{{.Volumes}}" redis_id`

    #cd $valum_redis_master

    #vi redis.cong

      daemonize yes

      pidfile /var/run/redis.pid

    #cd /data 

    #cp redis.conf /usr/local/bin

    #cd /usr/local/bin

    #redis-server redis.conf

 2) redis client   

    #valum_redis_master=`sudo docker inspect --format "{{.Volumes}}" redis_id`

    #cd $valum_redis_master

    #vi redis.cong

      daemonize yes

      pidfile /var/run/redis.pid

      slaveof master 6379 

    #cd /data 

   

   #cp redis.conf /usr/local/bin

    #cd /usr/local/bin

    #redis-server redis.conf

3) db test

  #redis-cli 

  set && get ; if can get , Done ; else Check

 

 

总结: 

  开发环境: 

    docker 提供的 虚拟化方式, 可以快速的建立起 一套 可复用的  开发环境, 以镜像的 形式,将 开发环境,分发给 开发人员,可以省去 搭建开发环境

  测试环境: 

    可以直接 使用,开发者所构建的镜像进行测试,直接免除了测试环境构建 和 因为 环境不一致所带来的 漏洞问题

  正式环境:  

    可以 利用 docker 进行容器 级别的部署, 把 应用及其依赖环境 打包成,跨平台,轻量级,可一直的容器 ,进行部署

  docker 是以 镜像和 镜像 基础 上 构建的容器为 基础, 以容器为开发 , 将与 应用相关的 所有组件 和 环境 进行封装, 避免了在 不同平台间 ,迁移时带来的依赖性问题

  

 

Docker-3 尝试Docker 应用栈

标签:

原文地址:http://www.cnblogs.com/nancy0517/p/5309498.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!