利用Docker集成多人合作二次开发cacti的开发环境部署文档

9 篇文章 0 订阅
8 篇文章 0 订阅

1、文档目的

1.通过docker的跨平台容器性质,来实现windows、osx以及linux多平台开发环境的本地搭建。
下文谨以Windows环境的搭建来进行详细介绍
2.docker可以创建自己的仓库体系用来管理镜像文件,当cacti的环境需要改善的时候,例如增加插件等和linux的环境有关的问题时,可以通过仓库上传来共享给整个团队,以达到同步开发环境的功能。
3.拥有自己的开发环境之后可以实现版本控制,以提高开发效率。

2、部署结构拓扑

本地的php项目的svn代码管理仓库+一个DockerToolbox工具。
1. Svn上的Php项目提供代码的支持。
2. DockerToolbox提供docker容器服务,容器中为已经部署完成的cacti项目运行所需环境(apache,php和mysql以及cacti插件等服务)

3、下载svn代码

cacti的项目源代码地址http://192.168.1.100/repos/zznet/znms/03_code/trunk
请用svn工具进行下载。
目录下面的文件如下
这里写图片描述

其中tar文件分别为cacti以及spine插件的安装包。
目录为两个tar包的解压缩后的文件
cacti目录是主要的开发目录,现代码已经完成cacti的install,可以直接进入console控制台。

4、docker安装

参考文档: https://docs.docker.com/windows/step_one/
  1. 检查系统版本,确认为windows7及以上的版本.
  2. 安装Docker Toolbox
    Docker Toolbox的安装文件在svn的document目录下.。
    详细路径: http://192.168.1.100/repos/zznet/znms/07_document/开发环境部署
    安装过程均按照默认系统选项即可。安装之后出现三个可执行程序
    1)点击Docker Quickstart 运行docker环境
    这里写图片描述
    直到运行如下界面,代表docker
    这里写图片描述
    2)在terminal终端中输入
docker run hello-world 

直到显示如下,代表安装成功,如果输出有问题请参考附录1。

$ docker run hello-world
Unable to find image 'hello-world:latest' locally
Pulling repository hello-world
91c95931e552: Download complete
a8219747be10: Download complete
Status: Downloaded newer image for hello-world:latest
Hello from Docker.
This message shows that your installation appears to be working correctly.

5、Docker的使用

5.1 docker的简单介绍

docker是一个用来构建你的应用的开放平台,可以在多平台下部署你在其他平台上搭建好的应用环境。
docker可以简单分为5部分
1. docker engine:即docker的服务引擎,用来提供docker的基础服务。
2. docker client :docker的客户端,用来连接远程的docker服务端。
3. docker 容器 :docker的容器,一个客户端可以运行多个容器,每个容器按照官方的规范的话应该是代表一个应用(例如:一个redis数据库或者mysql数据库),可以很好的管理应用的生命周期等。
4. docker 镜像 :docker容器的基础,可以理解为镜像就是系统镜像文件,而容器可以看作是一台机器。
5. registry :docker仓库,用来管理docker镜像文件

5.2 项目中使用docker的流程

由于cacti的环境搭建比较复杂,所以为了每个人能够在自己的机器上有一套单独的开发环境,
可以使用docker的容器管理服务。
通过构建一个通用的docker镜像文件(image文件),镜像文件中是所搭好的cacti环境,上传到我们自己构建的docker仓库中。然后本地docker客户端拉下镜像文件,使用容器运行,然后通过docker自己文件挂载技术,把php项目文件挂载到virtual box虚拟机的路径上,然后通过virtual box虚拟机和windows系统共享文件夹最终达到容器可以访问windows本地磁盘的目的,这样就可以实现我们本地开发,编辑php文件,然后可以用自己本地的cacti服务器来实时去测试代码。
我们自己构建的docker仓库地址是:192.168.1.26:5000

5.3 项目中使用docker的详细过程

note:安装完之后的terminal有两个,一个是quickstart这个只能进行docker操作的终端docker,还有一个virtual box可以进行所有操作的终端,具体选择视实际情况而定。其实可以不启动quickstart这个应用,但是启动quickstart之后会默认帮你开启虚拟机。

下文中会把quickstart称为docker client,virtual box的虚拟机ternimal称为docker engine。以便区分。

5.3.1 虚拟机 virtual box的配置

  1. 配置虚拟机和windows的共享文件夹
    打开virtual box,如果此时docker环境已经启动,那么virtual box中就会有一个default的正在启动的虚拟机,如下图所示这里写图片描述
    选择default虚拟机并且点击上方的设置按钮,选择共享文件夹选项卡并进行共享文件夹配置。如下图所示:
    这里写图片描述
    这里名称为 在虚拟机中的路径名称 路径是windows系统下映射的路径,默认的配置是c/Users
    意思是windows系统中的c盘下的user目录 映射成虚拟机中的c/user路径
    此处要配置的就是php代码的存放地址(当然不一定要设置在c盘)
例如,我的svn的代码目录为C:\Users\znms\07_document\03_code\trunk
和下面运行容器的时候命令添加的参数有关,下文会详细介绍
  1. 配置虚拟机和本地window主机的网络连接协议
    修改为bridge桥接,如下图
    这里写图片描述

5.3.2 配置仓库http协议地址:

右键选择显示,出现docker engine所在虚拟机

在terminal中输入

$ vi /var/lib/boot2docker/profile

回车后,输入i,进行文件编辑,然后添加红线位置所示参数,按键esc,退出编辑模式,输入 :wq+回车 来保存。
这里写图片描述
重新启动docker服务,在docker engine下执行命令

/etc/init.d/docker restart

服务启动完毕后进行操作2

5.3.3 下载cacti环境image(镜像)

如果上述docker仓库地址配置成功,在docker engine中运行命令,显示如下代表镜像pull成功

$ docker pull 192.168.1.26:5000/cacti

这里写图片描述

5.3.4 运行以cacti镜像为环境的容器

在docker engine中执行命令:

$ docker run -i -d -v /c/Users/znms/03_code/trunk:/var/www/html -p 1880:80 -p 13306:3306 cacti:latest

参数以及说明:

序号参数指令作用
1run运行容器
2i让容器的标准输入打开
3v指定挂载文件夹对应关系。宿主机文件夹:容器挂载文件夹
4p指定对宿主机(这里指的是docker engine,也就是virtual box的机器)暴露端口映射关系。 宿主机映射端口:容器暴露端口
5cacti:latestcacti代表镜像文件的库 latest代表镜像文件的tag,可以当作是版本

针对第4个参数:

本文中我的svn代码所放置的目录为C:\Users\znms\07_document\03_code\trunk
共享文件夹的设置为
这里写图片描述
所以我的docker engine(也就是virtual box所启动的虚拟机中的路径就是)/c/Users/znms/03_code/trunk。
要挂载在php项目的文件夹下面,也就是/var/www/html
所以最终v多对应参数为/c/Users/znms/03_code/trunk:/var/www/html
具体值视真实情况而定

5.3.5 测试本地开发环境

1.查询virtual box运行的虚拟机的IP地址
进入到虚拟机的terminal,然后执行命令:ip addr 本次测试显示的docker engine的ip为192.168.1.24
这里写图片描述
2.打开浏览器输入
http://192.168.1.24:1880/cacti/ (ip为你的docker engine所在ip)
出现下图所示,代表环境搭建成功
这里写图片描述
3.测试修改本地代码时apache的热部署功能
在svn的代码目录03_code/trunk/cacti/下创建php文件a.php
输入如下内容

<?php
phpinfo();
?>

在浏览器中打开http://192.168.1.24:1880/cacti/aaa.php
如果出现php的版本信息代表热部署环境搭建完成。


6附录

  1. docker 命令执行不了:可能是虚拟机docker engine还未启动好,也就是docker服务还没启动好
  2. docker操作的指令(本次开发可能不会经常用到)
指令作用指令详细指令描述
运行容器docker run -i -d -v /c/Users/znms/03_code/trunk:/var/www/html -p 1880:80 -p 13306:3306 centos:cacti_v2请参照5.3.4
查询正在运行的容器docker ps可以通过这条指令查到容器的id
查询所有的容器docker ps -a
停止容器docker stop cid可以根据容器的id(cid)停止指定容器
删除容器docker rm cid可以根据容器的id(cid)删除指定的容器
查询docker中的所有镜像docker images可以查询到镜像的name以及tag
移除镜像docker rmi name:tag根据镜像的name以及tag来删除镜像
进入正在运行的容器docker exec -ti cid /bin/bash
查看容器运行产生的日志记录docker logs cid经常用于容器启动不了时候的排错
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值