zoukankan      html  css  js  c++  java
  • docker容器与容器云读书笔记1

    搭建docker应用栈

    操作系统: ubuntu 16.04.1 LTS 桌面版

    1. 准备工作

    换网易源, gedit 会报一个metadata的告警, 不用理会, sudo apt-get update, sudo apt-get upgrade 之后就修复了

    2. 安装docker并启动docker daemon

    sudo apt-get install apt-transport-https ca-certificates
    sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
    sudo apt-get update
    sudo apt-get install docker-engine
    sudo service docker start

    3. 获取应用栈各节点所需镜像

    sudo docker pull ubuntu
    sudo docker pull django
    sudo docker pull haproxy
    sudo docker pull redis
    #获取特定版本 sudo docker pull redis:3.0.6

    4. 应用栈容器节点启动

    # 启动redis容器
    sudo docker run -it --name redis-master redis /bin/bash
    sudo docker run -it --name redis-slave1 --link redis-master:master redis /bin/bash
    sudo docker run -it --name redis-slave2 --link redis-master:master redis /bin/bash
    
    # 启动django容器
    sudo docker run -it --name APP1 --link redis-master:db -v ~/Projects/Django/App1:/usr/src/app django /bin/bash
    sudo docker run -it --name APP2 --link redis-master:db -v ~/Projects/Django/App2:/usr/src/app django /bin/bash
    
    # 启动haproxy容器
    sudo docker run -it --name HAProxy --link APP1:APP1 --link APP2:APP2 -p 6301:6301 -v ~/Projects/HAProxy:/tmp haproxy /bin/bash

    5. redis master 主数据库容器节点配置

    sudo docker inspect --format "{{ .Volumes }}" bc8e

    报错如下: Template parsing error: template: :1:2: executing "" at <.Volumes>: map has no entry for key "Volumes"

    有建议使用 {{ .Config.Volumes }}

    sudo docker inspect --format "{{ .Config.Volumes }}" bc8e
    输出 map[/data:{}]

    grep大法好

    sudo docker inspect bc8e | grep Source
    "Source": "/var/lib/docker/volumes/xxxxxxx/_data"

    之后需要 root 权限, ubuntu 的 sudo cd 会报错, 因为 cd 是 alias

    sudo -s
    cd /var/lib/docker/volumes/xxxxxxx/_data
    cp 你的redis文件夹/redis.conf .
    vim redis.conf

    需要修改以下参数

    # bind 是必须要改的, 否则 slave 会找不到 master, 默认是 127.0.0.1
    bind 0.0.0.0

    切换到容器中

    # /var/lib/redis 这个文件夹必须创建
    mkdir /var/lib/redis
    cd /data
    cp redis.conf /usr/local/bin
    cd /usr/local/bin
    redis-server redis.conf

    6. redis slave 从数据库容器节点的配置

    redis.conf的修改项

    slaveof master 6379

    启动方式相同

    7. redis 数据库容器节点测试

    master

    # redis-cli
    127.0.0.1:6379> set master bc8e
    OK
    127.0.0.1:6379> get master
    "bc8e"

    slave

    # redis-cli
    127.0.0.1:6379> get master
    "bc8e"

    info 可以检查目前redis状态,  /var/log/redis/redis.log 可以查看日志信息, 如果master的数据没有同步到 slave, 可以利用日志协助排错.

    8. APP容器节点的配置

    按照书中流程来即可, 直到 python manage.py syncdb 会报错, 因为已经没有这个命令了, 需要执行的是 python manage.py createsuperuser

    9. HAProxy 容器节点的配置

    # 会报错
    listen redis_proxy 0.0.0.0:6301
    # 需要修改如下 listen redis_proxy bind
    0.0.0.0:6301

    10. 应用栈访问测试

    原书的 http://172.17.0.9 是个迷之地址, 换成 http://127.0.0.1 或 http://localhost 可破.

  • 相关阅读:
    生成数据库结构设计说明书的存储过程
    C#检测上传图片是否安全函数
    设定下拉列表控件DropDownList,复选按钮CheckBox,RadioButton默认值总结测试
    C#批量重命名工具V2.0
    个人一些工作经验方式积累办法
    修身《孟子》尽心篇
    linux 命令 lspci lsusb
    重拾信心
    linux eclipse
    A lunch in Gordon Market with WWF
  • 原文地址:https://www.cnblogs.com/senjougahara/p/6217254.html
Copyright © 2011-2022 走看看