创建云主机
网易蜂巢提供2种方式管理服务,一种是控制台方式,一种是API接口,本文主要以控制台方式讲解。
基本的配置
首先,打开网易蜂巢的控制台,点击右侧的云主机-创建云主机,我们需要创建一个 Linux 操作系统,具体参数如下:
| 类别 | 参数 |
|---|---|
| 计费方式 | 按量付费 |
| 可用区 | A区 |
| 镜像 | Centos7 |
| 规格 | CPU:2核;内存:2G;系统盘,40G |
| 云主机名称 | docker-tomcat |
配置SSH 密钥
出于安全方面考虑,蜂巢不提供直接密码登录服务器的方式,但是提供 SSH 密钥的方式,您可以在创建云主机的时候选择:
- 创建一对新的密钥。
- 导入已有的本地公钥文件。

这里我们选择导入本地密钥,本地创建一对 SSH 密钥,我这里使用的是 MAC OS ,打开终端,执行:
|
根据提示创建一对RSA算法的不带密码的密钥,其路径在家目录的 .ssh 目录下,其中 id_rsa 是私钥文件,id_rsa.pub 是公钥文件,我们需要把公钥文件内容添加到平台,执行:
|
查看密钥内容,然后复制粘贴到控制台。

然后勾选刚才创建的 SSH 密钥,最后点击立即创建。

此时,我们就创建好了一台云主机,可以在云主机列表中查看。

远程连接
默认情况下创建的主机是不提供外网 IP 地址的,蜂巢提供2种管理远程主机的方式,第一种是通过 OpenVPN 的方式,可以在控制台找到账户安全,下载OpenVPN的配置文件连接,具体使用方法参考[文档](http://support.c.163.com/md.html#!计算服务/容器服务/使用技巧/如何使用蜂巢 OpenVPN.md)。

然后下载应用程序,MAC 下拖拽配置文件到程序中,然后连接即可

当连接成功后,即可远程连接
|
另外一种方式就是绑定弹性公网 IP 的方式来远程,具体操作如下,点击控制台左侧的弹性公网 IP,创建弹性公网 IP。

创建完成之后会在列表中看到创建的 IP 地址。

下面我们要将 IP 绑定到云主机,点击左侧云主机,如何绑定,请参考[文档](http://support.c.163.com/md.html#!平台服务/弹性公网 IP/使用指南/绑定公网IP/公网IP绑定云主机.md)进行绑定。
绑定完成之后,我们就可以远程连接了。
|
当然,如果对于服务器的安全性要求较高,还是建议使用vpn的方式登录。
|
更新系统
|
安装 Docker
我们选择的操作系统是 Centos7.2,可以使用如下命令安装 Docker:
|
安装完毕后 可以查看docker的版本
|
启动docker
|
如果启动出现问题,可以参考文档解决。
安装镜像
打开蜂巢镜像中心,可以找到 tomcat,在云主机执行
|
安装 tomcat 镜像,安装完毕可以查看镜像
|
后台运行容器
|
导出本地容器
|
本地镜像上传到蜂巢
该部分内容参考文档
1.登录
|
2.标记本地镜像
|
3.推送镜像
|
|
然后在后台镜像仓库可以看到

使用私人镜像
在镜像仓库中点击刚才创建的镜像,可以在页面种看到下载地址

执行
|
然后查看会发现私人仓库的镜像也出现在了镜像列表中
|
负载均衡配置
要配置负载均衡,我们需要在主机内创建2个容器并进行响应的数据卷和端口的映射。
注意:容器内的webapps目录在/var/lib/tomcat7/下,我们需要创建一个外部的卷来将其挂载到容器内使用,因此这里我们在服务器的/opt/目录下创建一个目录data和data1目录。
创建第一个容器
查看本地镜像
[root@docker-tomcat data]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hub.c.163.com/fangwenjun/tomcat latest 1d333f1d42a5 17 months ago 266.9 MB
hub.c.163.com/public/tomcat 7.0.28 1d333f1d42a5 17 months ago 266.9 MB
[root@docker-tomcat data]#
然后执行
[root@docker-tomcat data]# docker run -d -P --name web -v /opt/data/:/var/lib/tomcat7/webapps/ROOT/ -p 8080:8080 1d33
80fded28b17a58097f5c54361e9d161c5c97167aa2290a01989dbe2430989c55
分配其数据卷为web;/opt/data/ 指向容器的webapps目录;本地端口8080映射到容器8080
查看端口映射
[root@docker-tomcat data]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
80fded28b17a 1d33 "/bin/sh -c '/etc/ini" 40 seconds ago Up 39 seconds 0.0.0.0:8080->8080/tcp, 0.0.0.0:32769->22/tcp web
[root@docker-tomcat data]# docker port 80f
22/tcp -> 0.0.0.0:32769
8080/tcp -> 0.0.0.0:8080
在本地的data目录写入一个文件
[root@docker-tomcat data]# cat index.html
this is test page
然后访问,发现是可以通过公网IP 访问8080端口的,此时访问的就容器中的8080端口对应的tomcat资源

创建第二个容器
分配其数据卷为web1;/opt/data1/ 指向容器的webapps目录;本地端口8081映射到容器8080
[root@docker-tomcat opt]# docker run -d -P --name web1 -v /opt/data1/:/var/lib/tomcat7/webapps/ROOT/ -p 8081:8080 1d33
9073cf3aeedbb155c74748a46f254f03bc71857d538b8f5480fd4711f9fa3b14
查看端口映射
[root@docker-tomcat data1]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9073cf3aeedb 1d33 "/bin/sh -c '/etc/ini" 2 minutes ago Up 2 minutes 0.0.0.0:32770->22/tcp, 0.0.0.0:8081->8080/tcp web1
80fded28b17a 1d33 "/bin/sh -c '/etc/ini" 9 minutes ago Up 9 minutes 0.0.0.0:8080->8080/tcp, 0.0.0.0:32769->22/tcp web
[root@docker-tomcat data1]# docker port 80f
22/tcp -> 0.0.0.0:32769
8080/tcp -> 0.0.0.0:8080
然后在/opt/data1目录写入一个html文件
[root@docker-tomcat data1]# echo docker2 >> index.html
访问 发现可以访问到docker2的内容
创建负载均衡
打开蜂巢后台,点击左侧的负载均衡

创建一个负载均衡,选择面向范围为-面向主机,然后输入一个名称,这里叫tomcat

然后切换到目标组

创建一个目标组,填写目标组名称,这里叫tomcat,后端组选择云主机,然后取消掉所有云主机使用相同端口的复选框,分别填写8080和8081两个端口,对应主机中的两个容器服务,确认无误后点击提交。

然后点击创建监听

填写监听名称,这里叫http,选择监听的协议,可以选择HTTP、HTTPS和TCP协议,填写监听端口,比如这里填80端口,转发规则就使用默认的规则,后端服务就选择我们刚才创建的tomcat组,会话保持,我们这里不启用,确认无误后创建。

此时我们拿负载均衡的IP地址去访问,可以看到是能够正常访问到后端的8080端口对应的容器服务的。

那么我们强制刷新几次浏览器,发现切换到后端的8081端口对应的服务了。说明负载均衡配置成功。
