fabric搭建
实测有效的搭建教程:
http://www.cnblogs.com/studyzy/p/6365969.html
搭建时的环境
- git version 1.9.1
- docker-compose version 1.12.0
- Docker version 1.9.1
- go version go1.8rc1
系统采用容器的方式运行,构建过程简单、各组件分工清晰:
- Docker-compose:Docker 容器管理;
- Go lang SDK:Go 语言开发、编译环境;
- Git:git 镜像克隆与提交;
- Rest Client: rest API 测试;
容器主要运行有:MemberSrv 和Peer;
ubuntu 搭建docker
版本支持
Docker支持以下几个版本的Ubuntu操作系统:
- Ubuntu Trusty 14.04 (LTS)
- Ubuntu Precise 12.04 (LTS)
- Saucy 13.10
注意:虽然这几个版本都可以安装,但最好是使用Docker官方提供的最新安装版本。
系统要求
无论Ubuntu系统是以上那个版本,必须满足以下两个条件:
- 必须是64-bit系统
内核必须是3.10以上版本
查看你当前系统是否满足条件:
$uname -a
3.13.0-51-generic 表示当前Ubuntu系统的内核版本号,后面的x86_64表示本系统是64位。
注:我是在虚拟机(VMware)Ubuntu系统中安装Docker的,故会出现Linux jeff-virtual-machine字样(jeff-virtual-machine是虚拟机中Ubuntu系统的计算机名)虚拟机安装教程 —— [ 在VMware中安装Ubuntu]
安装教程
http://www.linuxidc.com/Linux/2014-08/105656.htm
http://www.linuxidc.com/Linux/2014-10/108184.htm
问题
按照官网教程执行sudo apt-get install lxc-docker出现
Unable to locate package lxc-docker
stackoverflow找到如下解决:
sudo sh -c "curl https://get.docker.io/gpg | apt-key add -"
sudo sh -c "echo deb http://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
sudo apt-get update
sudo apt-get install lxc-docker
输入:
Do you want to continue [Y/n]? y
后,等一会儿
sudo service docker status
可以看到已经在运行
常用docker命令,及一些坑
常用命令
- 查看容器的root用户密码
docker logs <容器名orID> 2>&1 | grep ‘^User: ’ | tail -n1
因为docker容器启动时的root用户的密码是随机分配的。所以,通过这种方式就可以得到redmine容器的root用户的密码了。
- 查看容器日志
docker logs -f <容器名orID>
- 查看正在运行的容器
docker ps
docker ps -a为查看所有的容器,包括已经停止的。
- 删除所有容器
docker rm $(docker ps -a -q)
- 删除单个容器
docker rm <容器名orID>
- 停止、启动、杀死一个容器
docker stop <容器名orID>
docker start <容器名orID>
docker kill <容器名orID>
- 查看所有镜像
docker images
- 删除所有镜像
docker rmi (docker images | grep none | awk '{print3}’ | sort -r)
- 运行一个新容器,同时为它命名、端口映射、文件夹映射。以redmine镜像为例
docker run –name redmine -p 9003:80 -p 9023:22 -d -v /var/redmine/files:/redmine/files -v /var/redmine/mysql:/var/lib/mysql sameersbn/redmine
- 一个容器连接到另一个容器
docker run -i -t –name sonar -d -link mmysql:db tpires/sonar-server
sonar
容器连接到mmysql容器,并将mmysql容器重命名为db。这样,sonar容器就可以使用db的相关的环境变量了。
拉取镜像
docker pull <镜像名:tag>
如
docker pull sameersbn/redmine:latest
- 当需要把一台机器上的镜像迁移到另一台机器的时候,需要保存镜像与加载镜像。
机器a
docker save busybox-1 > /home/save.tar
- 使用scp将save.tar拷到机器b上,然后:
docker load < /home/save.tar
- 构建自己的镜像
docker build -t <镜像名>
坑
ubuntu14下的docker是没有service服务。去除每次sudo运行docker命令,需要添加组:
Add the docker group if it doesn’t already exist.
$ sudo groupadd docker
改完后需要重新登陆用户
sudogpasswd−a {USER} docker
ubuntu14的febootstrap没有-i命令
Dockerfile中的EXPOSE、docker run –expose、docker run -p之间的区别
Dockerfile的EXPOSE相当于docker run –expose,提供container之间的端口访问。docker run -p允许container外部主机访问container的端口
fabric环境搭建
教程
http://www.linuxdiyf.com/linux/27296.html
http://www.cnblogs.com/studyzy/p/6365969.html
http://blog.youkuaiyun.com/yl_1314/article/details/53908973
go下载及安装配置
http://blog.youkuaiyun.com/sunylat/article/details/50812998
安装docker-compose
Docker-compose是支持通过模板脚本批量创建Docker容器的一个组件
https://docs.docker.com/compose/install/
https://docs.docker.com/compose/install/#alternative-install-options
切换docker镜像下载源为国内镜像
http://blog.youkuaiyun.com/huludan/article/details/52713799
问题
- ubuntu14.04 docker上fig问题Couldn’t connect to Docker daemon at http+unix://var/run/docker.sock
http://blog.youkuaiyun.com/qiyueqinglian/article/details/46559825
linux命令
删除软件
方法一、如果你知道要删除软件的具体名称,可以使用
sudo apt-get remove --purge 软件名称
sudo apt-get autoremove --purge 软件名称
方法二、如果不知道要删除软件的具体名称,可以使用
dpkg --get-selections | grep ‘软件相关名称’
sudo apt-get purge 一个带core的package,如果没有带core的package,则是情况而定。
清理残留数据
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P