From d6cb01dfcb41230a7136247d42824c5ec3ba4475 Mon Sep 17 00:00:00 2001 From: Baohua Yang Date: Fri, 5 Sep 2014 16:18:02 +0800 Subject: [PATCH] Add the practice chapter --- images/container_connect_topology.png | Bin 0 -> 29673 bytes images/enterprise_usage.png | Bin 0 -> 57571 bytes practice/README.md | 1 + practice/container_connect.md | 77 ++++++++++++++++++ practice/environment.md | 10 +++ practice/local_repo.md | 107 ++++++++++++++++++++++++++ practice/supervisor.md | 54 +++++++++++++ practice/tomcat.md | 74 ++++++++++++++++++ 8 files changed, 323 insertions(+) create mode 100644 images/container_connect_topology.png create mode 100644 images/enterprise_usage.png diff --git a/images/container_connect_topology.png b/images/container_connect_topology.png new file mode 100644 index 0000000000000000000000000000000000000000..5419d56536da749e269cca789c6f4bce2124ba42 GIT binary patch literal 29673 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 literal 0 HcmV?d00001 diff --git a/images/enterprise_usage.png b/images/enterprise_usage.png new file mode 100644 index 0000000000000000000000000000000000000000..5682892cfd710a49434b9745247107af71158011 GIT binary patch literal 57571 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ⓈBg2{CBrAVXSLfp7l(-&jg9QGIGG&oLvP!Ya4_G8gq5=rg23Iycx|L8O zhaYA|=sFSEuXsvdO(2K8!ghkKj&X!W_8C97fNmlZF;zo)zH?N&tP^oy4Gk7r+XU_& zx-HIV`+3*`V4|eKGo><_iFl@@AF&t{uE_iZw*5q$?=z2Y{ZBq@4=AIXRrFN@*nHvY zfOb|W(+M+7B(=9IS3VfircjQA_Uwsy_B|iFAH1jnOEAV0u5EmOy*LYl)ChH(gZ307 zpFWfj_XEYD^r-ajpf2gAhK3s;^V{3o1I%tT+~$^+gZ+KLVh*XVudNkn%FD~Esks0) zcm@bWVj>|_*u%ij%*hcm2A47*7jIWHmjXz5j%jRGf)yz5UzJVZiw}<@TaeDXeShpg zdVIvf5P7AGEN6>_3n=XDtgNSiRs>qk=RgIe4D%~3Ep4r~yRV73DqXJ8p-3!pp*dq28@FmrsiBT)z9*G`xC-(buZpxa-CJzDjYkYh#dl~DVfs8B{l#3tau&}Ty zyMam(kRcI_$>!0LfuZF+uu=zCjEpusJPeE=tHEp$4UIXVwd(8X@lDR*cS2Us3!Wwd zkCk@A2rv&|}ce)M#HNeMExm2`C{88$rB-r0}-UQfOO8?sD5#dx*1Txlo{ zPCZ9Q$1h*#FQFaLtW8-7z{ex7Day+FU(Wsc!^X^vExZ2{P{C@ZvX!MJ32bbEykP$4wlY< znhXL|Y%Hd-5vHZI59xb%SiIaB;N$_^QBz}MZNZdL#N$dX5RI(Gpb?B>b8=#$;XaV1 z1(Og3dCb3(VP6ctll!eP;8c0IwCxW3du?rP?^F96w9WMm|yS`1pVZKyn6p0MZLfNQEKCf)Ed@kg>sTNIyUWE?l?(tDwQKik0|lK~4jp z3}c{6moDwwx39Rk7?$8_5Lf6U*aTVcfddDA{`u#yu&{uDfWwCmgFHh$^aAVytI*f5 z19W$2Xz0g}AE6Ur34QU0cXDAc7!2lb@TE$O1QJ3pQpEfB??a@90%T5*7L&US1359| z$2V@==Dcu zM}PngA_@gas?c>}kWbj>$&)87EiJIx(a{kU6a+erHi0C-63PGseb8f6hSciLojVZI z^YinotE*8Zh%{2)&kl+>^^?{ zxU{qs6uPFSCMzoo>fgP4_x$;D7&%d?)UvWNNRHFf)1eg%o**Yi#_5|5Cn4@bTKsALl#!7E zTcH5a99jWThH$@h=~9UJd-m*sR18P?Zv?!G+zVr!qeqXzkf^JxtG>QIJ3AZQ9Stcm z>~{V7^^lMd=tL0aw6wIRPoKgvH#ZkD<2P^K*xTDf>Kq?dyH8w>LM;K2hlt|I#l zkCQMM4CX(;S1U2(Sdcl5JoO7g3+WUT(3}!)-@a{XYO1ZRegFPF#A^upd-v`Id4^4} zij2Tk*ar&eNgF7D?t;Nbj~+dI_zD+Y5U97J z5_J4;(5-R)G=cLp{1D>(lOlwy=t mtu 1500 qdisc noqueue state UNKNOWN group default + link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 + inet 127.0.0.1/8 scope host lo + valid_lft forever preferred_lft forever + inet6 ::1/128 scope host + valid_lft forever preferred_lft forever +11: eth0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 + link/ether 4a:7d:68:da:09:cf brd ff:ff:ff:ff:ff:ff + inet 172.17.0.3/16 scope global eth0 + valid_lft forever preferred_lft forever + inet6 fe80::487d:68ff:feda:9cf/64 scope link + valid_lft forever preferred_lft forever +``` +这样就可以把这个网络看成是一个私有的网络,通过nat 连接外网,如果要让外网连接到容器中,就需要做端口映射,即-p参数(更多原理参见本文第六小节) +如果在企业内部应用,或则做多个物理主机的集群,可能需要将多个物理主机的容器组到一个物理网络中来,那么就需要将这个网桥桥接到我们指定的网卡上。 + +###拓扑图 +主机A和主机B的网卡一都连着物理交换机的同一个vlan 101,这样网桥一和网桥三就相当于在同一个物理网络中了,而容器一、容器三、容器四也在同一物理网络中了,他们之间可以相互通信,而且可以跟同一vlan中的其他物理机器互联。 +![物理拓扑图](../images/container_connect_topology.png) + +###ubuntu示例 +下面以ubuntu为例创建多个主机的容器联网: +创建自己的网桥,编辑/etc/network/interface文件 +``` +auto br0 +iface br0 inet static +address 192.168.7.31 +netmask 255.255.240.0 +gateway 192.168.7.254 +bridge_ports em1 +bridge_stp off +dns-nameservers 8.8.8.8 192.168.6.1 +``` +将docker的默认网桥绑定到这个新建的br0上面,这样就将这台机器上容器绑定到em1这个网卡所对应的物理网络上了。 + +ubuntu修改/etc/default/docker文件 添加最后一行内容 + +``` +# Docker Upstart and SysVinit configuration file +# Customize location of Docker binary (especially for development testing). +#DOCKER="/usr/local/bin/docker" +# Use DOCKER_OPTS to modify the daemon startup options. +#DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4" + +# If you need Docker to use an HTTP proxy, it can also be specified here. +#export http_proxy="http://127.0.0.1:3128/" + +# This is also a handy place to tweak where Docker's temporary files go. +#export TMPDIR="/mnt/bigdrive/docker-tmp" + +DOCKER_OPTS="-b=br0" +``` + +在启动docker的时候 使用-b参数 将容器绑定到物理网络上。重启docker服务后,再进入容器可以看到它已经绑定到你的物理网络上了。 + +``` +root@ubuntudocker:~# docker ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +58b043aa05eb desk_hz:v1 "/startup.sh" 5 days ago Up 2 seconds 5900/tcp, 6080/tcp, 22/tcp yanlx +root@ubuntudocker:~# brctl show +bridge name bridge id STP enabled interfaces +br0 8000.7e6e617c8d53 no em1 + vethe6e5 +``` +这样就直接把容器暴露到你的物理网络上了,多台物理主机的容器也可以相互联网了。需要注意的是,这样就需要自己来保证容器的网络安全了。 \ No newline at end of file diff --git a/practice/environment.md b/practice/environment.md index e69de29..96fd86e 100644 --- a/practice/environment.md +++ b/practice/environment.md @@ -0,0 +1,10 @@ +#中小企业docker环境搭建 +docker对于中小企业来说,搭建paas没有那个精力,也没那个必要,用做个人的sandbox用处又小了点,个人认为作为中小企业可以用docker来标准化开发、测试、生产环境。 + + +![企业应用结构](../images/enterprise_usage.png) + + +docker占用资源小,在一台E5 128G内存的服务器服务器上部署100个容器都绰绰有余,可以单独抽一个容器或则直接在宿主物理主机上部署samba,利用samba的home分享方案将每个用户的home目录映射到开发中心和测试部门的windows机器上。可以针对项目组,由架构师搭建好一个标准的容器环境供项目组和测试部门使用,每个开发工程师可以拥有自己单独的容器,通过docker run -v 将用户的home目录映射到容器中。需要提交测试时,只需要将代码移交给测试部门,然后分配一个容器使用-v 加载测试部门的home目录启动即可。这样,在公司内部的开发、测试基本就统一了,不会出现开发提交的代码,测试 部门部署不了的问题。 + +测试发布测试通过的报告后,架构师再一次检测容器环境,就可以直接交由部署工程师将代码和容器分别部署到生产环境中了。这种方式的部署横向性能的扩展性也极好。 diff --git a/practice/local_repo.md b/practice/local_repo.md index e69de29..fd554db 100644 --- a/practice/local_repo.md +++ b/practice/local_repo.md @@ -0,0 +1,107 @@ +##部署本地仓库 +由于网络的关系,国内用户在使用docker hub的时候,很难pull一个基本的镜像下来。 +本节介绍如何创建部署本地仓库。 + +###安装docker +参见本文第三小节 +###从文件系统创建一个image镜像 +创建镜像有很多方法,官方的推荐是pull一个,不过在墙内,想pull一个基本的ubuntu都没办法完成。 +这里推荐一个办法就是从一个文件系统import一个镜像,个人推荐可以使用opvz的模板来创建:(openvz可以说是容器虚拟化的先锋吧) +openvz的模板下载地址如下: +http://openvz.org/Download/templates/precreated +下载完之后,比如:下载了一个ubuntu14.04的镜像 +使用以下命令: +``` +sudo cat ubuntu-14.04-x86_64-minimal.tar.gz |docker import - ubuntu:14.04 +``` +然后用docker images看下: +``` +docker images +REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE +ubuntu 14.04 05ac7c0b9383 17 seconds ago 215.5 MB +``` +就多了一个我们的ubuntu镜像 + +###创建私有仓库 +官方指南称最简单的办法是 docker run -p 5000:5000 registry,如果被墙了,也无法下载该images。感谢CSDN,我有一个1M的腾讯云服务器,上面搭建了一个私有仓库大家可以使用 +docker pull 203.195.193.251:5000/registry +到我的服务器下载 速度虽然慢点,但有保证! +另外的方法是使用刚才的创建的ubuntu来创建,官方有个docker仓库的源码地址 https://github.com/dotcloud/docker-registry 下载私有仓库的源码,可以根据上面的docker file来创建。 + +也可以参考: +http://www.vpsee.com/2013/11/build-your-own-docker-private-regsitry-service/ + +###在私有仓库上传、下载、搜索images +创建好自己的私有仓库之后,可以使用docker tag 一个镜像,然后push,然后在别的机器上pull下来就好了。这样我们的局域网私有docker仓库就搭建好了。 +步骤如下: +使用 docker run -p 5000:5000 registry 在局域网的一台机器上开启一个容器之后,我的局域网私有仓库地址为192.168.7.26:5000 +先在本机看下现有的images +``` +root ~ # docker images +REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE +ubuntu latest ba5877dc9bec 6 weeks ago 192.7 MB +ubuntu 14.04 ba5877dc9bec 6 weeks ago 192.7 MB +使用 docker tag 将ba58这个image标记为192.168.7.26:5000/test +root ~ # docker tag ba58 -t 192.168.7.26:5000/test +root ~ # docker images +REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE +ubuntu 14.04 ba5877dc9bec 6 weeks ago 192.7 MB +ubuntu latest ba5877dc9bec 6 weeks ago 192.7 MB +192.168.7.26:5000/test latest ba5877dc9bec 6 weeks ago 192.7 MB +``` +使用docker push 上传我们标记的新image,这里因为我的服务器上已经有这个images,所有在上传文件层的时候,都跳过了,但是标记还是不一样的。 +``` +root ~ # docker push 192.168.7.26:5000/test +The push refers to a repository [192.168.7.26:5000/test] (len: 1) +Sending image list +Pushing repository 192.168.7.26:5000/test (1 tags) +Image 511136ea3c5a already pushed, skipping +Image 9bad880da3d2 already pushed, skipping +Image 25f11f5fb0cb already pushed, skipping +Image ebc34468f71d already pushed, skipping +Image 2318d26665ef already pushed, skipping +Image ba5877dc9bec already pushed, skipping +Pushing tag for rev [ba5877dc9bec] on {http://192.168.7.26:5000/v1/repositories/test/tags/latest} +root ~ # curl http://192.168.7.26:5000/v1/search +The program 'curl' is currently not installed. You can install it by typing: +apt-get install curl +``` +现在的私有仓库只支持这样简陋的搜索方式,如果没有安装curl,可以先安装后再使用 +``` +root ~ # apt-get install curl +Reading package lists... Done +Building dependency tree +Reading state information... Done +The following NEW packages will be installed: + curl +0 upgraded, 1 newly installed, 0 to remove and 570 not upgraded. +Need to get 123 kB of archives. +After this operation, 313 kB of additional disk space will be used. +Get:1 http://192.168.7.26/ubuntu/ trusty/main curl amd64 7.35.0-1ubuntu2 [123 kB] +Fetched 123 kB in 0s (7457 kB/s) +Selecting previously unselected package curl. +(Reading database ... 184912 files and directories currently installed.) +Preparing to unpack .../curl_7.35.0-1ubuntu2_amd64.deb ... +Unpacking curl (7.35.0-1ubuntu2) ... +Processing triggers for man-db (2.6.7.1-1) ... +Setting up curl (7.35.0-1ubuntu2) ... +root ~ # curl http://192.168.7.26:5000/v1/search +{"num_results": 7, "query": "", "results": [{"description": "", "name": "library/miaxis_j2ee"}, {"description": "", "name": "library/tomcat"}, {"description": "", "name": "library/ubuntu"}, {"description": "", "name": "library/ubuntu_office"}, {"description": "", "name": "library/desktop_ubu"}, {"description": "", "name": "dockerfile/ubuntu"}, {"description": "", "name": "library/test"}]} +``` +这里我们可以看到 {"description": "", "name": "library/test"} 表示我们的image已经被成功上传了。 +现在我们到另外一台机器上下载这个images +``` +[root@opnvz ~]# docker pull 192.168.7.26:5000/test +Pulling repository 192.168.7.26:5000/test +ba5877dc9bec: Download complete +511136ea3c5a: Download complete +9bad880da3d2: Download complete +25f11f5fb0cb: Download complete +ebc34468f71d: Download complete +2318d26665ef: Download complete +[root@opnvz ~]# docker images +REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE +192.168.7.26:5000/test latest ba5877dc9bec 6 weeks ago 192.7 MB +``` + +这样我们就可以在新的机器上使用这个images了! \ No newline at end of file diff --git a/practice/supervisor.md b/practice/supervisor.md index e69de29..1bf2f8e 100644 --- a/practice/supervisor.md +++ b/practice/supervisor.md @@ -0,0 +1,54 @@ +##在Docker中使用 Supervisor来管理进程 +docker 容器在启动的时候开启单个进程,比如,一个ssh或则apache 的daemon服务。但我们经常需要在一个机器上开启多个服务,这可以有很多方法,最简单的就是把多个启动命令方到一个启动脚本里面,启动的时候直接启动这个脚本,另外就是安装进程管理工具。. +本小节将使用进程管理工具supervisor来管理容器中的多个进程。使用Supervisor可以更好的控制、管理、重启我们希望运行的进程。在这里我们演示一下如何同时使用ssh和apache服务。 +###dockerfile +FROM ubuntu:13.04 +MAINTAINER examples@docker.com +RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list +RUN apt-get update +RUN apt-get upgrade -y + +安装supervisor +安装 ssh apache supervisor + +RUN apt-get install -y openssh-server apache2 supervisor +RUN mkdir -p /var/run/sshd +RUN mkdir -p /var/log/supervisor +这里安装3个软件,还创建了2个用来允许ssh和supervisor的目录 +COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf +添加supervisor‘s的配置文件 +添加配置文件到对应目录下面 +映射端口,开启supervisor +使用dockerfile来映射指定的端口,使用cmd来启动supervisord +EXPOSE 22 80 +CMD ["/usr/bin/supervisord"] +这里我们映射了22 和80端口,使用supervisord的可执行路径启动服务。 +###supervisor配置文件内容 +``` +[supervisord] +nodaemon=true +[program:sshd] +command=/usr/sbin/sshd -D + +[program:apache2] +command=/bin/bash -c "source /etc/apache2/envvars && exec /usr/sbin/apache2 -DFOREGROUND" +``` +配置文件包含目录和进程,第一段supervsord配置软件本身,使用nodaemon参数来运行。下面2段包含我们要控制的2个服务。每一段包含一个服务的目录和启动这个服务的命令 +###使用方法 +创建image +``` +$ sudo docker build -t test/supervisord . +``` +启动我们的supervisor容器 +``` +$ sudo docker run -p 22 -p 80 -t -i test/supervisords +2013-11-25 18:53:22,312 CRIT Supervisor running as root (no user in config file) +2013-11-25 18:53:22,312 WARN Included extra file "/etc/supervisor/conf.d/supervisord.conf" during parsing +2013-11-25 18:53:22,342 INFO supervisord started with pid 1 +2013-11-25 18:53:23,346 INFO spawned: 'sshd' with pid 6 +2013-11-25 18:53:23,349 INFO spawned: 'apache2' with pid 7 +``` +使用docker run来启动我们创建的容器。使用多个-p 来映射多个端口,这样我们就能同时访问ssh和apache服务了。 + +###可以使用这个方法创建一个只有ssh服务基础image +之后创建image可以以这个image为基础来创建 \ No newline at end of file diff --git a/practice/tomcat.md b/practice/tomcat.md index e69de29..13ccb67 100644 --- a/practice/tomcat.md +++ b/practice/tomcat.md @@ -0,0 +1,74 @@ +##创建tomcat/weblogic集群 +###安装tomcat镜像 +准备好需要的jdk tomcat等软件放到home目录下面,启动一个虚拟机 +``` +docker run -t -i -v /home:/opt/data --name mk_tomcat ubuntu /bin/bash +``` +这条命令挂载本地home目录到虚拟机的/opt/data目录,虚拟机内目录若不存在,则会自动创建。接下来就是tomcat的基本配置,jdk环境变量设置好之后,将tomcat程序放到/opt/apache-tomcat下面 +编辑/etc/supervisor/conf.d/supervisor.conf文件,添加tomcat项 +``` +[supervisord] +nodaemon=true + +[program:tomcat] +command=/opt/apache-tomcat/bin/startup.sh + +[program:sshd] +command=/usr/sbin/sshd -D +docker commit ac6474aeb31d tomcat +``` + +新建tomcat文件夹,新建Dockerfile +``` +FROM tomcat +EXPOSE 22 8080 +CMD ["/usr/bin/supervisord"] +``` +根据dockerfile 创建image +``` +docker build tomcat tomcat +``` +###安装weblogic镜像 + +步骤和tomcat基本一致,这里贴一下配置文件 +``` +supervisor.conf +[supervisord] +nodaemon=true + + +[program:weblogic] +command=/opt/Middleware/user_projects/domains/base_domain/bin/startWebLogic.sh + +[program:sshd] +command=/usr/sbin/sshd -D +dockerfile +FROM weblogic +EXPOSE 22 7001 +CMD ["/usr/bin/supervisord"] +``` + +###tomcat/weblogic 镜像的使用 +1)存储的使用 +在启用docker run 的时候,使用 -v参数 +-v, --volume=[] Bind mount a volume (e.g. from the host: -v /host:/container, from docker: -v /container) +将本地磁盘映射到虚拟机内部,它在主机和虚拟机容器之间是实时变化的,所以我们更新程序、上传代码只需要更新物理主机的目录就可以了,数据存储的详细介绍请参见本文第七小节 +2)tomcat和weblogic集群的实现 +tomcat只要开启多个容器即可 +docker run -d -v -p 204:22 -p 7003:8080 -v /home/data:/opt/data --name tm1 tomcat /usr/bin/supervisord +docker run -d -v -p 205:22 -p 7004:8080 -v /home/data:/opt/data --name tm2 tomcat /usr/bin/supervisord +docker run -d -v -p 206:22 -p 7005:8080 -v /home/data:/opt/data --name tm3 tomcat /usr/bin/supervisord + + +这里说一下weblogic的配置,大家知道weblogic有一个域的概念。如果要使用常规的administrator +node的方式部署,就需要在supervisord中分别写出administartor server和node server的启动脚本,这样做的优点是: +* 可以使用weblogic的集群,同步等概念 +* 部署一个集群应用程序,只需要安装一次应用到集群上即可 +缺点是: +* docker配置复杂了 +* 没办法自动扩展集群的计算容量,如需添加节点,需要在administrator上先创建节点,然后再配置心的容器supervisor启动脚本,然后再启动容器 +另外种方法是将所有的程序都安装在adminiserver上面,需要扩展的时候,启动多个节点即可,它的优点和缺点和上一中方法恰恰相反。(目前我使用这种方式来部署开发和测试环境) +docker run -d -v -p 204:22 -p 7001:7001 -v /home/data:/opt/data --name node1 weblogic /usr/bin/supervisord +docker run -d -v -p 205:22 -p 7002:7001 -v /home/data:/opt/data --name node2 weblogic /usr/bin/supervisord +docker run -d -v -p 206:22 -p 7003:7001 -v /home/data:/opt/data --name node3 weblogic /usr/bin/supervisord + +这样在前端使用nginx 来做负载均衡就可以完成配置了