第3次实践作业

(1)完成Docker-compose的安装

1.运行以下命令以下载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

2.将可执行权限应用于二进制文件并测试是否完成安装:

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

(2)Dockerfile编写

1.对各类文件的编写

我在这里选择的是LNMP

dockerfile

# tree compose-lnmp/nginx
FROM nginx:latest

# tree compose-lnmp/mysql
FROM mysql:5.7

# tree compose-lnmp/phpfpm
FROM  php:5.6-fpm
 RUN apt-get update && apt-get install -y \
 libfreetype6-dev \
 libjpeg62-turbo-dev \
 libpng12*-dev \
 vim \
 && docker-php-ext-install pdo_mysql \
 && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
 && docker-php-ext-install gd \

html

hi heiren

2.执行docker-compose

sudo docker-compose up -d

LNMP/LAMP选择一种;
分别构建web、php应用、数据库等镜像服务,php镜像亦有提供php:-apache的变体;
提示:php连接数据库需要安装必要的核心扩展部件(PHP Core Extensions)安装方法可参考官方镜像介绍。

(3)使用Compose实现多容器运行机制

编写compose文件,完成上述LNMP/LAMP的微服务组合部署。

docker-compose.yml

# tree compose-lnmp/docker-compose.yml
version: "3"
services:
 nginx:
   build: ./nginx
   ports:
     - "80:80"
   links:
     - "phpfpm"
   volumes:
     - ./html/:/var/www/html/
     - ./nginx/conf/default.conf:/etc/nginx/conf.d/default.conf
 phpfpm:
   build: ./phpfpm
   ports:
     - "9000:9000"
   volumes:
     - ./html/:/var/www/html/
   links:
     - "mysql"
 mysql:
   build: ./mysql
   ports:
     - "13306:3306"
   volumes:
     - ./mysql/data/:/var/lib/mysql/
   environment:
     MYSQL_ROOT_PASSWORD : 123456

(4)服务测试

要求和提示:

1.nginx测试

2.php测试


检测到PDO的安装

3.连接数据库

这里选择用PDO连接
此处参考PHP 连接 MySQL
这里一次性给出了三个窗口

4.创建数据库

修改index.php文档并运行(编辑内容已在图中)

可以看到成功连接到数据库

查看数据库

sudo docker exec -it compose-lnmp_mysql_1 /bin/bash
mysql -u root -p

进入数据库成功

查看数据库

show databases;

5.创建数据表

修改index.php文档并运行(编辑内容已在图中)

创建了一个命名为sneaker的表,并有ID、尺码和颜色三个属性
可以看到已经创建成功

进入数据库并查表

use myDBPDO
show tables;

5.插入表记录

修改index.php文档(编辑内容已在图中)


这里插入了一些热门鞋款

查询表记录

select * from sneaker;

6.修改表记录

修改index.php文档(编辑内容已在图中)

修改350的鞋码为uk9.5

查表


可以看到已经修改成功

7.删除表记录

修改index.php文档(编辑内容已在图中)

删除350的记录

查表


可以看到已经删除成功

(5)选做

1.编辑yml文件添加相关内容(编辑内容已在图中)

2.编辑dockerfile文件(编辑内容已在图中)

3.用浏览器访问https://localhost:8080/

先build再访问,懂的都懂

登录成功

4.可以查看到我们之前创建的myDBPDO的具体结构

5.对表结构进行修改

插入700海盐的uk12鞋款


可以看到已经插入成功

将700的颜色更新为黑武士


执行成功

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

(6)遇到的问题及分析

1.在选做部分刚编辑完phpmyadmin执行sudo docker-compose down时出错

phpmyadmin应与其他属性在同一位置,我在复制时没有注意到,所以系统将它认定为顶层属性,导致出错

2.在yml文件中的bulid编辑错了一个字母

这有点低级错误了

(6)感想及体会

  我的博客是和实验同步进行的,大概14个小时。
  来写一写这次的感想吧,这次实验我本来是打算一天内连续把它做完的,没想到在做的过程中一直碰到各种问题,然后也翻阅了许多博客和教程网,最终跨越了一天才将它完成了。其实我先前就已经听说过nginx了,之前的了解就是nginx是一个高性能的HTTP和反向代理web服务器,同时也能够提供IMAP/POP3/SMTP服务。据说Nginx是Apache服务器不错的替代品,但是需要高连接并发的情况下才能实现。这次还学到了docker-compose的多容器机制实现,我想之后对部署工程或者程序会起到很大的作用,这样就能实现一种轻量级的微服务部署,希望之后能有实现的机会,也十分期待后几次实践课的实验内容了,我想应该到最后会用上的。

posted @ 2020-05-03 22:04  一天能饿好多次  阅读(265)  评论(2编辑  收藏  举报