• 第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的理解更深刻了。

  • 相关阅读:
    浅析[53300] FATAL: remaining connection slots are reserved for non-replication superuser connections
    浅析Web安全漏洞里的X-Frame-Options、X-XSS-Protection、X-Content-Type-Options响应头配置以及如何通过nginx配置避免
    浅析SpringSecurity的方法级安全管控
    浅析mybatis的全局配置文件mybatis-config.xml各配置的意义
    字节序--大端字节序和小端
    【转】go语言中int和byte转换方式
    [转]float32数据在内存中的存储方法
    go语言复制一个struct 对象
    一个table 中 可以有多个tbody. table 可以嵌套
    【转】rpc框架设计
  • 原文地址:https://www.cnblogs.com/cy0850/p/12845980.html
Copyright © 2020-2023  润新知