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.
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 : -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
启动方式相同
7. redis 数据库容器节点测试
master
# redis-cli
127.0.0.1:> set master bc8e
OK
127.0.0.1:> get master
"bc8e"
slave
# redis-cli
127.0.0.1:> 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:
# 需要修改如下
listen redis_proxy
bind 0.0.0.0:
10. 应用栈访问测试
原书的 http://172.17.0.9 是个迷之地址, 换成 http://127.0.0.1 或 http://localhost 可破.
docker容器与容器云读书笔记1的更多相关文章
- Spring读书笔记——bean创建(下)
有关Spring加载bean系列,今天这是最后一篇了,主要接上篇对于从Spring容器中获取Bean的一些细节实现的补充. <Spring读书笔记--bean加载>--Spring如何加载 ...
- 《Docker容器与容器云》读书笔记
云计算平台 云计算是一种资源的服务模式,该模式可以实现随时随地.便捷按需地从可配置计算资源共享池中获取所需资源(如网络.服务器.存储.应用及服务),资源能够快速供应并释放,大大减少了资源管理工作开销. ...
- Docker系列之Docker容器(读书笔记)
一.介绍 容器是独立运行的一个或一组应用,以及它们的运行态环境.对应的,虚拟机可以理解为模拟运行的一整套操作系统和排在上面的应用. 二.容器 2.1 启动容器 启动容器有两种方式,一种是基于镜像新建一 ...
- 【山外笔记-云原生】《Docker+Kubernetes应用开发与快速上云》读书笔记-2020.04.25(六)
书名:Docker+Kubernetes应用开发与快速上云 作者:李文强 出版社:机械工业出版社 出版时间:2020-01 ISBN:9787111643012 [山外笔记-云原生]<Docke ...
- STL源码剖析读书笔记--第四章--序列式容器
1.什么是序列式容器?什么是关联式容器? 书上给出的解释是,序列式容器中的元素是可序的(可理解为可以按序索引,不管这个索引是像数组一样的随机索引,还是像链表一样的顺序索引),但是元素值在索引顺序的方向 ...
- 阿里云部署Docker(7)----将容器连接起来
路遥知马力.日久见人心.恩. 该坚持的还是要坚持. 今天看到一个迅雷的师弟去了阿里,祝福他,哎,尽管老是被人家捧着叫大牛.我说不定通过不了人家的面试呢.哎,心有惭愧. 本文为本人原创,转载请表明来源: ...
- 《精通Spring 4.X企业应用开发实战》读书笔记1-1(IoC容器和Bean)
很长一段时间关注在Java Web开发的方向上,提及到Jave Web开发就绕不开Spring全家桶系列,使用面向百度,谷歌的编程方法能够完成大部分的工作.但是这种不系统的了解总觉得自己的知识有所欠缺 ...
- how tomcat works 读书笔记(二)----------一个简单的servlet容器
app1 (建议读者在看本章之前,先看how tomcat works 读书笔记(一)----------一个简单的web服务器 http://blog.csdn.net/dlf123321/arti ...
- Docker学习笔记——制作容器与容器概念
Docker能做些什么? 1.docker能够解决虚拟机能够解决的问题 2.隔离应用依赖 3.创建应用镜像并复制 4.创建容易分发的即启即用的应用 5.docker的想法是创建软件程序可移植的轻量容器 ...
随机推荐
- Apache service named reported the following error(OS 10055)由于系统缓冲区空间不足或队列已满解决办法?
apache启动失败报错: The Apache service named reported the following error:>>> AH00451: no listeni ...
- bzoj 2434 阿狸的打字机 fail树的性质
如果a串是另b串的后缀,那么在trie图上沿着b的fail指针走一定可以走到a串. 而a串在b串里出现多少次就是它是多少个前缀的后缀. 所以把fail边反向建树维护个dfs序就行了. 并不是很难... ...
- [虚拟机]Virtual Box的使用--共享文件夹
最近为系统测试使用了虚拟机,VM太卡,所以使用了VBox,运行效果还不错 为了主机和客户机之前方便进行数据传输,一般采用文件夹共享的方式(当然,可以直接拖拽) 1,直接拖拽,需要做如下设置 主要的是“ ...
- 【Phylab2.0】Beta版本项目展示
团队成员 冯炜韬(PM)http://www.cnblogs.com/toka 岳桐宇(后端)http://www.cnblogs.com/mycraftmw 杨子琛(测试&LaTeX)htt ...
- This month Calendar
package fourth;import java.text.DateFormatSymbols;import java.util.*;public class CalendarTest { pub ...
- Linux基础知识整理
一.基础知识 1.Linux简介 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的UNIX工具软件 ...
- 【转】MySQL索引背后的数据结构及算法原理
摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BT ...
- 的vim和emacs常用配置记录
因为经常改变工作环境,所以在这里记录一下我的.vimrc文件和.emacs文件的内容. vimrc的配置文件,主要是设置语法高亮,和tab键的宽度,个人喜欢设置为4个空格的分量. " set ...
- KMP专题
1.[HDU 3336]Count the string(KMP+dp) 题意:求给定字符串含前缀的数量,如输入字符串abab,前缀是a.ab.aba.abab,在原字符串中出现的次数分别是2.2.1 ...
- HTML 内容居中方式总结
在HTML网页排版经常会用到关于对其方式的情况,水平居中和垂直居中.特别是水平居中,并不是一个简单的text-align就可以解决所有的情况. 开始之前普及一点HTML知识,目标很明显,不同的页面结构 ...