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:-apache的变体;
提示: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小时,大部分时间花在查资料和写文件上,写博客贴图也比较耗时,希望博客园可以早点支持多图上传

原文地址:https://www.cnblogs.com/xbrucken/p/12771615.html