2020系统综合实践 第3次实践作业
目录
一个最终的应用通常需要组装多个容器提供的多个服务。以web服务为例,需要完成web服务器、数据库、开发程序等服务的组装,典型的如LAMP(Linux+Apache+Mysql+PHP)或LNMP(Linux+Nginx+Mysql+PHP)。Docker compose是作为定义和运行多容器的工具,用户可以使用 YML 文件来配置应用程序需要的所有服务。
1.完成Docker-compose的安装
参考资料:Install Docker Compose
- 下载Docker Compose的当前稳定版本
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
- 将可执行权限应用于二进制文件
sudo chmod +x /usr/local/bin/docker-compose
- 测试安装
docker-compose --version
2.Dockerfile编写(包括选作部份)
要求:LNMP/LAMP选择一种;
分别构建web、php应用、数据库等镜像服务,php镜像亦有提供php:
提示:php连接数据库需要安装必要的核心扩展部件(PHP Core Extensions)安装方法可参考官方镜像介绍。
2.1 构建目录
- 按以下结构构件docker_compose文件夹
- *tree的安装
2.2 文件编写
- nginx
- mysql
- php
- phpmyadmin
- web
(html与上次实验相同放上次的图)
3.使用Compose实现多容器运行机制
编写compose文件,完成上述LNMP/LAMP的微服务组合部署。
参考资料:Get started with Docker Compose
3.1 文件编写
- docker-compose.yml
3.2 运行及检验
- 拉取php
docker pull php
- 开始构建
sudo docker-compose up -d --build
- 检验镜像和容器的构建情况
- 访问index.html和index.php
4.服务测试
要求和提示:包括但不限于测试数据库连接、数据库新建、表新建、表记录的插入修改和删除是否成功(pdo或 mysqli均可)
4.1 测试数据库连接
- 修改index.php使其可以反馈连接情况
- web查看是否连接成功
4.2 数据库新建
- 修改index.php:新建DBtest并反馈
- web查看是否新建成功
- 终端中进入容器查看数据库
sudo docker exec -it ID /bin/bash
mysql -u root -p
show databases;
4.3 表操作
- 修改index.php:新建表Booklist并反馈
- web查看是否新建成功
- 终端中查看表
show tables;
- 修改index.php:在表Booklist中插入数据并反馈
- web查看是否插入成功
- 终端中查询
select * from Booklist;
- 修改index.php:在表Booklist中修改/删除数据并反馈
- web查看是否修改/删除成功
- 终端中查询是否已更改
select * from Booklist;
5.选做
增加一个phpmyadmin容器,实现web端的数据库管理。
5.1 文件编写
- 已在2.2中给出
5.2 登录及操作
- 浏览器中访问localhost:8080
- 查看数据库
- 查看表Booklist
- 进行插入等操作
- 网页上操作方式都很便捷,不再一一截图
6.总结
提交可以运行的yml文件和相关的Dockerfile文件、配置文件;
记录实验过程的主要问题和解决方法,分享经验和感想;
记录完成作业所花的时间。
-
相关文件
见上方截图 -
问题解决
这次问题主要也是在前期原理的学习上,操作上比较顺利,只有在写yml文件时遇到格式的报错:注意yml文件中不要使用tab,都改为空格就可以了
-
时间记录
总耗时大约9小时,大部分时间花在查资料和写文件上,写博客贴图也比较耗时,希望博客园可以早点支持多图上传