第3次实践作业

一、安装Docker-compose

1)参考了同学的root权限下换源下载只用了几秒。

sudo su进入root权限

curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

 

(2)将可执行权限应用于二进制文件测试是否安装成功

sudo chmod +x /usr/local/bin/docker-compose

sudo docker-compose --version

 

二、Dockerfile编写

1)拉取nginx镜像、php镜像、mysql镜像

  • nginx镜像 

sudo docker pull nginx:latest

 

  • 拉取php镜像

sudo docker pull php:7.4-fpm

 

  • 拉取mysql镜像

sudo docker pull mysql

 

2)Dockfile文件的编写

2.1 创建docker_compose文件夹,目录结构如下

 

2.2 创建dockerfile_mysql、dockerfile_php、default.conf、docker-compose.yml、dockerfile_nginxindex.htmlindex.php文件

  • dockerfile_mysql

 

  • dockerfile_php

 

  • default.conf

 

  • docker-compose.yml

 

  • dockerfile_nginx

 

  • Index.html

 

  • Index.php

 

三、使用Compose实现多容器运行机制

1)查看docker_compose文件夹的树状结构

sudo apt install tree

cd docker_composetree

 

tree

 

2)执行docker-compose文件

sudo docker-compose up -d --build

 

3)查看容器

sudo docker ps -a

 

4)查看镜像

sudo docker images

 

5)访问localhost/index.html

 

(6)访问localhost/index.php

四、服务测试

1)检测PHP是否能够成功连接Mysql数据库

1.1 修改index.php文件

 

1.2 访问localhost/index.php

 

2)数据库相关操作

2.1 创建数据库

 

访问http://localhost/index.php

进入mysql容器,查询数据库

sudo docker exec -it  mysql /bin/bash

mysql -u root -p

show databases;

 

2.2 创建数据表

 

访问网页

 

使用myDB数据库并查询数据表

 

use myDB

show tables;

 

2.3 向数据表中插入数据

 

访问页面

 

查询数据库

select * from user;

 

2.4 修改数据

 

访问页面

 

查询数据库

select * from user;

 

2.5 删除数据

 

访问页面

 

查询数据库,xiaoming已经被删除

select * from user;

 

五、增加一个phpmyadmin容器,实现web端的数据库管理

1)在docker-compose.yml文件中增加以下代码

 

(2)创建dockerfile_phpmyadmin文件

 

(3)执行docker-compose文件

 

(4) 访问localhost:8080/index.php

 

5.1 登录成功后

5.2 选择myDB数据库查看user表数据

六、出现的问题及解决方案

1. 执行docker_compose文件时创建mynginx失败

 

查看报错信息发现之前做实验时已经创建过mynginx容器,sudo docker ps -a查看之前创建的mynginx容器id,sudo docker rm id把创建过的容器删除,再重新build即可解决

 

 

2. 增加一个phpmyadmin容器执行dockerfile_compose文件时出错


报错原因为找不到指定的dockerfile文件,仔细检查后发现文件名写错了一个单词,改正后重新执行得到解决。

七、所花时间和总结

先是花了大概一上午的时间了解了一下Docker Composephp,下午则是实际操作,期间也借鉴已经做好的同学的博客,总体做下来还是比较顺利的,晚上则完成博客,所以总体下来花了将近一天的时间。这次作业让我意识到细心的重要性,还有就是要仔细查看报错信息,报错信息是解决问题的关键。这次作业使我对docker的理解更深刻了。

原文地址:https://www.cnblogs.com/cy0850/p/12845980.html