首页>微信动态>实战|Rancher环境下的catalog创建(上)

实战|Rancher环境下的catalog创建(上)

本文是一篇在Rancher环境下创建catalog的实战记录原创文章,跟大家分享了一些在实现过程中的步骤和之间遇到的问题,欢迎大家留言讨论:


项目描述:

在Rancher 的catalog界面中新加一个catalog,用这个catalog创建的stack可以正常工作。实现环境在局域网内四台vmware的ESX虚拟机中进行试验,其中A(192.168.4.33)机器上启动rancherServer,另外B(192.168.4.27)和C(192.168.4.46)通过AddHost的方式添加进来。B和C主机添加进去之后,对每个主机进行编辑,各自添加一个hostname=B和C的labels,本步骤是为了后面测试catalog的docker-compose.yml中指定在哪台机器上运行是否正确。D(192.168.4.12)主机作为Registry。选择添加进catalog的的应用是gotomycloud官网。(注释:gotomycloud是一款用于远程办公的远程PC控制软件  )


实现步骤:

说明:GoToMyCloud Web项目主要有两个服务器组成:A: mysql数据库服务器此服务器用容器来代替,需要在容器启动的时候带动mysql服务程序,并在第一次启动时将数据库的表建出来。B:tomcat网页服务器需安装java和tomcat ,将GoToMyCloud网页代码做成java的war包放在tomcat的指定路径下,就可访问网页。war包中有个配置用于指定数据库的IP地址,地址在做war包的时候,为了利用容器之间的link关系,需要进行修改,将ip地址换成mysql服务器的容器名称,这里定下来用mysqlhost。

 具体的实现步骤如下

1.搭建私有registry;

2.编写Dockerfile,制作mysql和tomcat的镜像;

3.编写docker-compose.yml和rancher- compose.yml,为创建新的catalog做准备;

4.添加自定义的catalog到rancher UI中并测试。


1.搭建私有registry:

搭建Registry的步骤只有一步,运行如下命令就可以创建一个registry的容器:


在上面的这个命令中,一定要使用-v做个主机目录和regsitry目录的映射,这样的好处是容器崩溃了,数据依然还在,重建regsitry的话数据就可以恢复了。
客户端使用此registry时,如果不修改/etc/sysconfig/docker这个配置文件,会报“认证不过”的错误。在这个文件中找到OPTIONS这个key,在后面的值中加:--insecure-registry 192.168.4.12:80

保存后,通过service docker restart 就可以访问这个私有的Registry了。


2.编写Dockerfile,制作mysql和tomcat的镜像


mysql镜像制作:
1.)使用docker pull ubuntu命令先取下一个ubuntu的镜像作为基础镜像;

2.)基于这个镜像使用docker run –name ubuntu_mysql –it bash命令创建一个容器,在这个容器中使用apt-get install mysql-server,安装过程中会提示输入密码这个使用Cloudsoar12,安装完成后,需要配置mysql允许外部主机访问,这里要改两个地方:

A. /etc/mysql/my.cnf中找到bind-addree=127.0.0.1这行,然后把他注释掉,然后重启mysql服务;

B.使用mysql进入服务器,设置mysql允许其他主机访问。

3.)将第二步中配置好的容器通过docker commit ubuntu 192.168.2.35:80/base _mysql做成一个服务镜像,其中192.168.2.35:80是搭建的私有Registry,做成镜像后,通过push命令将这个镜像提交到私有Registry中。

4.)编写Dockerfile制作应用镜像。新建一个目录,命名为mysql,在这个目录下,放置如下三个文件:

A:GoToMyCloudDB.sql

容器首次启动时,通过这个文件可以将数据库表建出来;

B:run.sh

启动mysql服务,并且判断是否是第一次启动,如果是就导入GoToMyCloudDB.sql。里面的具体内容如下:

C:Dockerfile

文件内容如下:


在mysql这个目录下,建出上面的三个文件后,通过使用docker build –t 192.168. 4.12:80/brank_mysql,制作服务镜像,做完后上传到私有Registry上。


tomcat镜像制作


GoToMyCloud项目对tomcat的要求是8.0以上,在dockerhub上有一个版本叫做emedeiros/tomcat的,这个里面安装好了8.0.4的tomcat,java环境也已经配置好了,选择它作为服务镜像,具体的步骤如下:

1.先使用docker  pull 将emedeiros/tomcat 拉到本地;2.新建一个目录,取名为tomcat,在这个目录下放3个文件:A:GoToMyCloud.war,放网页代码B:Run.sh,容器启动后的执行脚本,内容如下:
C:Dockerfile文件,里面的内容如下:

完成这步后使用docker build 将这个镜像打出来,并上传到registry上,比如叫做 192.168.2.35:80/brank_tomcat。


测试镜像


为了确认上面打出来的两个镜像是否是没有问题的,先不适用docker-compose来做,先通过docker 命令来启动两个容器,看是否可以把整个项目运行起来。验证步骤如下:

1.在192.168.4.46的主机上创建mysql 容器;

docker run --name gotomycloud_mysql -d -p 3306:3306 192.168. 4.12:80/brank_mysql


2.在192.168.4.46的主机上创建tomcat 容器;



3.打开局域网里的浏览器访问192.168.4.46:8080/GoToMyCloud看是否可以正常访问,正常的话说明制作的两个镜像是没有问题的。


温馨提示:

云舒网络携手Rancher Labs推出【Rancher | 实战群】,在线为您分享Docker技术干货,更有往期回顾精选期刊等你拿!


本群汇集了Rancher技术精英及业内技术派高人,宗旨是为了大家拥有更专业的平台交流Rancher实战技术,实时与Rancher创始团队面对面!同时欢迎各位分享自己的经验、疑难问题,我们将定期邀请分享嘉宾做各类话题分享及回顾,共同实践研究Docker容器生态圈。


加群方法:

1.关注【云舒网络】公众号

2.留言”我要加群“


剩余部分我们将在下期继续推出,敬请期待!






云舒网络官方微信二维码