Docker-3 尝试Docker 应用栈

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker-3 尝试Docker 应用栈相关的知识,希望对你有一定的参考价值。

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 应用栈的主要内容,如果未能解决你的问题,请参考以下文章

将 NodeJS Docker 容器连接到 MySQL Docker 容器 - docker-compose 3

无法在 docker-compose 中使用 Postgres DB - ECONNREFUSED

Docker学习笔记——Docker安装启动

Docker学习笔记——Docker安装启动

docker4dotnet #3 在macOS上使用Visual Studio Code和Docker开发asp.net core和mysql应用

利用Docker构建分布式应用栈