【云知易】CCE云容器引擎 入门 02 之 制作镜像
制作镜像
本节介绍如何制作Guestbook应用中的三个镜像。
说明:
本节以在Linux操作系统下的操作为例介绍制作镜像,其他操作系统下与此类似,用户可以根据实际情况制作。
建议制作镜像和上传镜像在同一个操作系统中。
背景信息
Guestbook应用非常简单,代码逻辑全在Frontend组件内,Redis负责存储,只需要直接使用,从Frontend访问Redis即可。
Frontend需要读写Redis,为了解决组件间的通信问题,CCE使用服务名称代替IP地址,从而实现组件间的相互访问。
前提条件
由于需要从DockerHub公共注册服务器的仓库中下载镜像,请制作镜像前确认已连接Internet。
制作Docker镜像的机器(虚拟机或是物理机都可以)需要安装Docker 1.10.0或以上版本。
执行如下命令查询Docker版本号。
docker version
系统显示如下:
Version字段表示Docker的版本号。
若Version后面显示1.10.0及以上,说明符合制作镜像的要求。
若Version后面没有显示1.10.0及以上,请参考https://www.docker.com/下载并安装Docker。
若您未安装Docker,请在https://www.docker.com/中下载并安装Docker,安装指导请参见https://docs.docker.com/。
制作Frontend组件镜像
Frontend组件的代码文件结构如下:
为了保证组件之间的通信,需要在guestbook.php代码文件中需要配置“$host”的值,将两个“$host”分别设置为Redis_master组件的服务名称和Redis_slave组件的服务名称。
以root用户登录到安装有Docker的服务器上。
说明:您也可以使用其他用户登录,但是该用户必须拥有执行Docker的权限。
2. 执行如下命令,新建用于存放Frontend组件文件的目录。
mkdir guestbook
cd guestbook
mkdir frontend
cd frontend
3. 执行如下命令,编写guestbook.php代码文件。
vi guestbook.php
guestbook.php文件的内容如下,其中,为了实现组件间的通信,在逻辑代码的基础上需要添加服务名(见如下加粗内容),redis-master为Redis_master组件的服务名,redis-slave为Redis_slave组件的服务名。CCE通过解析服务名,获取组件的IP地址,从而实现组件间的相互访问。
服务名称以小写字母、数字、横杠(-)组成,且以小写字母开头。
4.编写controllers.js脚本文件。
vi controllers.js
controller.js的内容如下。
5.编写index.html文件。
vi index.html
index.html的内容如下。
6.执行如下命令,编写Docke**le文件。
vi Dockerifle
dockerifle内容如下。
其中:
FROM语句:表示使用php:5-apache镜像作为基础。
RUN语句:表示使用apt-get命令来更新软件包列表和安装Predis。
ADD语句:将本地代码文件添加到镜像中。
7.执行如下命令,在“frontend”目录下制作Frontend组件的镜像。
docker build -t frontend .
回显如下:
回显中出现“Successfully built”表示镜像创建成功,执行docker images命令,可以查看到制作完成的镜像。
制作Redis_master组件镜像
Redis_master组件使用公共的redis镜像,从公共镜像库中下载redis镜像即可。
执行如下命令,下载redis镜像。
docker pull redis:3.0
回显如下:
回显中出现“Status: Downloaded newer image for redis:3.0”,表示redis镜像下载成功。
制作Redis-salve组件镜像
Redis-salve组件与Redis_master主备组成双机系统,需要在公共redis镜像的基础上增加主备设置。
进入制作Frontend组件镜像步骤创建的guestbook文件夹,创建Redis_slave文件夹。
mkdir Redis_slave
cd Redis_slave
2.编写run.sh文件。
vi run.sh
run.sh内容如下。
其中,redis-master是Redis_master组件的服务名称,6379是Redis默认使用的端口。
3.编写Dockerifle文件。
vi Dockerife
dockerifle内容如下。
各条语句的含义如下:
FROM语句:表示基于redis镜像。
ADD语句:表示将本地的run.sh文件放到镜像中。
RUN语句:表示给所有用户写的run.sh赋予可执行权限。
CMD语句:表示容器启动后自动运行run.sh脚本。
4.执行如下命令,制作Redis_slave组件的镜像。
docker build -t redisslave .
回显如下:
回显中出现“Successfully built”表示镜像创建成功,执行docker images命令,可以查看到制作完成的镜像。
- 点赞
- 收藏
- 关注作者
评论(0)