第3次实践作业

1)完成Docker-compose的安装 `

因为网络问题,耽误了很久很久,一直安装不成功,所以百度找到以上的方法下载


2)Dockerfile编写

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

default.conf:

server {
listen       8010;        #修改映射端口
server_name  localhost;

location / {
    root   /home/docker-web/html;     #修改工作目录
    index  index.html index.htm;
}

error_page   500 502 503 504  /50x.html;
location = /50x.html {
    root   /usr/share/nginx/html;
}

location ~ \.php$ {
    root           /home/docker-web/php;          #修改工作目录
    fastcgi_pass   sphp:9000;        #修改为容器名
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; 
    include        fastcgi_params;
}

   }

dockerfile_nginx:

 FROM nginx
   MAINTAINER skk
   EXPOSE 8010

dockerfile_php:

FROM php:7.4-fpm
MAINTAINER skk
FROM php:7.4-fpm
RUN apt-get update && apt-get install -y \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libpng-dev \
    && docker-php-ext-install pdo_mysql \
    && docker-php-ext-configure gd --with-freetype --with-jpeg \
    && docker-php-ext-install -j$(nproc) gd

dockerfile_mysql:

    FROM mysql
    MAINTAINER skk
    ENV MYSQL_ROOT_PASSWORD 123456
    ENV MYSQL_ALLOW_EMPTY_PASSWORD no

文件如下:


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

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

a·编写compose文件
docker-compose.yml:

version: "3"

services:

 nginx:

image: snginx_image                #指定镜像名

container_name: snginx             #指定容器名

build:

  context: .

  dockerfile: dockerfile_nginx      #指定dockerfile文件

ports:

  - "80:8010"                       #修改端口映射

volumes:

  - ./web:/home/docker-web/html                 #挂载容器卷,本地/容器内修改文件后,另一方都会同步更新;

  - ./default.conf:/etc/nginx/conf.d/default.conf     #挂载配置文件



 php:

image: sphp_image 

container_name: sphp 

build:

  context: .

  dockerfile: dockerfile_php 

environment:

  MYSQL_PASSWORD: 123456            #设置好环境变量,在php代码中使用变量名直接引用

volumes:

  - ./web:/home/docker-web/php                  #挂载工作目录到本机web目录



 mysql:

   image: mysql_image 

   container_name: mysql

   build:

  context: .

  dockerfile: dockerfile_mysql

   ports:

 - "3306:3306"

   volumes:

 - ./mysql_data:/var/lib/mysql       #挂载容器卷,实现数据同步,防止数据丢失



 phpmyadmin:

image: myphpmyadmin_image

container_name: myphpmyadmin

build: 

  context: .

  dockerfile: dockerfile_phpmyadmin

ports: 

  - "8050:80" # phpmyadmin默认监听80

environment:



  PMA_HOST: mysql                     #指定mysql服务所在的host

b·LNMP/LAMP的微服务组合部署
运行docker-compose


4)服务测试

要求和提示:包括但不限于测试数据库连接、数据库新建、表新建、表记录的插入修改和删除是否成功(pdo或mysqli均可)

修改index.php文件:





5)选做

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

a·添加文件 dockerfile-phpadmin

FROM phpmyadmin/phpmyadmin           
MAINTAINER jamwong
EXPOSE 8080


6)总结问题以及解决方法6)总结问题以及解决方法

每一次做这门课的实验都心力交瘁的,因为网络不好,总是出现各种各样的问题。在做本次实验时,第一步的时候就遇到了问题,一直卡着,本来开开心心做实验,结果第一步就耗光了我所有的耐心,热情,然后睡了一觉,第二天继续满怀信心的开始我的实验。做完全部实验差不多花了我超过24小时吧。。。实验是不难,按着教程做,还算简单,可是就是网络太差了,非常心累。

posted @ 2020-05-08 12:43  小同学-  阅读(137)  评论(0编辑  收藏  举报