拜读:docker容器与容器云(2)


总结一下docker的学习搭建过程
看了3.1讲的内核,比较懵逼
看了网上的挑一挑外挂,基于python和模拟器的,试了试,都整好了,结果模拟器上微信的挑一挑打不开了。。。

1,获取镜像
docker pull haproxy
docker pull redis
docker pull django
2,分别启动六个容器
三个redis(一主两从)
docker run -it --name redis-master redis /bin/bash
docker run -it --name redis-slave1 --link redis-master:master redis /bin/bash
docker run -it --name redis-slave2 --link redis-master:master redis /bin/bash
两个Django
docker run -it --name APP1 --link redis-master:db -v /root/Projects/Django/App1:/usr/src/app django /bin/bash
docker run -it --name APP2 --link redis-master:db -v /root/Projects/Django/App2:/usr/src/app django /bin/bash
一个HAProxy
docker run -it --name HAProxy --link APP1:APP1 --link APP2:APP2 -p 6301:6301 -v ~/Projects/HAProxy:/tmp haproxy /bin/bash
建议开七个窗口

2,配置三个redis
针对没有使用-v参数的容器  查看他的默认挂载点
查看对应的挂载点 docker inspect imageID | grep Source
从网上下载redis.conf【地址: http://download.redis.io/releases/redis-4.0.6.tar.gz】文件。对应的大版本就行
流程是:
  1. 进入到挂载点目录,
  2. 拷贝redis.conf,
  3. 修改参数,
  4. 进入对应的容器,
  5. 进入到对应的挂载点目录,
  6. 将其redis.conf拷到 /usr/local/bin/,
  7. 启动redis,
  8. 测试主从redis

1,使用docker ps -a 查看所有容器在,在使用docker inspect f2b | grep -E "Source|Destination"命令查看三个redis对应的挂载目录

source对应的是主机的挂载点,Destination对应的是容器中与之对应的挂载点
2,拷贝redis.conf
cd <Source.value>
cp <you_redis.conf_dir>/redis.conf redis,conf
3,修改参数,
主节点修改三个参数
band 0.0.0.0 #不然会搜索不到主redis
deamonize yes
pidfile /var/run/redis.pid
从节点修改四个参数
band 0.0.0.0
deamonize yes
pidfile /var/run/redis.pid #这里该不该都行
slaveof master 6379
4,进入对应的容器
5,进入到对应的挂载点目录,cd <Destination.value>
6,将其redis.conf拷到 /usr/local/bin/,
7,启动redis,
redis.server redis.conf
8,测试主从redis
redis-cli 进入到redis的命令,使用set和get对其设置值和取值

3,配置两个App
  1. 在容器中使用pip命令安装redis
  2. 创建并启动App
在容器中使用pip命令安装redis
pip install redis
测试

2, 创建并启动App
使用容器中python+Django环境生成
cd /usr/src/app
mkdir dockerweb
cd dockerweb
cd dockerweb
django-admin.py startproject redisweb
cd redisweb
python manage.py startapp helloworld
生成helloworld文件
切换到主机中,编辑相应的配置文件:views、setting、urls
cd /root/Projects/Django/App1/dockerweb/redisweb/helloworld/
vim views.py
from django.shortcuts import render
# Create your views here.
from django.http import HttpResponse
import redis
def hello(request):
    str = redis.__file__
    str += "<br>"
    r = redis.Redis(host='db',port=6379, db=0)
    info = r.info()
    str += ("set hi <br>")
    r.set('Hi','Helloworld-APP1')
    str +=("Get Hi:%s <br>" % r.get('Hi'))
    str +=("Redis Info:<br>")
    str +=("Key:Info Value")
    for key in info:
        str += ("%s : %s <br>" % (key,info[key]))
    return HttpResponse(str)
编辑setting文件
cd ../redisweb/
#允许外来访问
ALLOWED_HOSTS = ['*']
#添加helloworld项目
# Application definition
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'helloworld',
]
编辑urls.py
添加引用
from helloworld.views import hello
增加链接
url(r'^helloworld$',hello),


编译helloworld项目
python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser #设置后台管理的用户名和密码 邮箱随便设置

启动helloworld项目
python manage.py runserver 0.0.0.0:8001

4,HAProxy容器节点的配置
  1. 在主机中编辑haproxy.cfg文件
  2. 在容器中启动
  3. 测试访问
1, 编辑haproxy.cfg文件
cd ~/Projects/HAProxy
vim  haproxy.cfg
global
  log 127.0.0.1 local0
  maxconn 4096
  chroot /usr/local/sbin
  daemon
  nbproc 4
  pidfile /usr/local/sbin/haproxy.pid
defaults
  log 127.0.0.1 local3
  mode http
  option dontlognull
  option redispatch
  retries 2
  maxconn 2000
  balance roundrobin
  timeout connect 5000ms
  timeout client 50000ms
  timeout server 50000ms
listen redis_proxy
  bind 0.0.0.0:6301 
  bind-process 2 #pao zai laing ge CPU shang`
  stats enable
  stats uri /haproxy-stats
      server APP1 APP1:8001 check inter 2000 rise 2 fall 5
      server APP2 APP2:8002 check inter 2000 rise 2 fall 5

适当的注释(注:这里少了两项: bind 0.0.0.0:6301,bind-process 2 #pao zai laing ge CPU shang`)

2,进入容器并启动
cd /tmp
cp   haproxy.cfg /usr/local/sbin
cd  /usr/local/sbin
haproxy -f haproxy.cfg
注:杀死所有有关HAProxy的进程:killall haproxy
测试



美好的一天  明天加油
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值