2020系统综合实践 第3次实践作业

(1)完成Docker-compose的安装

参考资料: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编写

  • 下载镜像

  • 创建各个文件

  • mysql
#基础镜像
FROM mysql:5.7
#维护者信息
MAINTAINER lin
  • nginx-Dockerfile
# Base images 基础镜像
FROM nginx:latest
#MAINTAINER 维护者信息
MAINTAINER lin
  • nginx-default.conf
server {
        listen       80;
        server_name  localhost;
    
        location / {
            root   /var/www/html;
            index  index.html index.htm index.php; # 增加index.php
        }
    
        #error_page  404              /404.html;
    
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /var/www/html;
        }
        location ~ .php$ {
            root           /var/www/html; # 代码目录
            fastcgi_pass   phpfpm:9000;    # 修改为phpfpm容器
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; # 修改为$document_root
            include        fastcgi_params;
        }
    }
  • phpfpm
#基础镜像
FROM  php:7.4-fpm
#作者信息
MAINTAINER lin
#更换镜像源
RUN sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
#安装扩展pdo
RUN apt-get clean && 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 --with-jpeg 
&& docker-php-ext-install gd 

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

  • docker-compose.yml
version: "3"
services:
 nginx:
   build: ./nginx
   ports:
     - "80:80"
   links:
     - "phpfpm"
   volumes:
     - ./html/:/var/www/html/
     - ./nginx/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:
     - "3306:3306"
   volumes:
     - ./mysql/data/:/var/lib/mysql/
   environment:
     MYSQL_ROOT_PASSWORD : 123456
  • 在compose文件夹打开终端
sudo docker-compose up -d

(4)服务测试

参考资料:菜鸟教程

  • 测试访问index.html和index.php


  • 连接mysql


  • 创建数据库


  • 终端进入mysql容器,查看数据库是否创建成功

  • 创建数据表


  • 插入数据



  • 修改数据


  • 删除数据


(5)(选做)增加一个phpmyadmin容器,实现web端的数据库管理

  • phpmyadmin-Dockerfile
#基础镜像
FROM phpmyadmin/phpmyadmin:latest
#作者信息
MAINTAINER lin
  • docker-compose.yml末尾
 phpmyadmin:
   build: ./phpmyadmin
   ports:
     - "7070:80"
   links:
     - "mysql"
   environment:
     - PMA_ABRITRARY=1     
     - PMA_HOST=mysql 

(6)困难

docker-compose.yml文件中的路径一定要相对应,如果下一步sudo docker-compose up -d出现个别运行不起来,可能是docker-compose.yml文件中的路径出错了

选做中拉取容器的命令容易出错

本次作业大约花费了一天的时间

原文地址:https://www.cnblogs.com/linmzAa/p/12845504.html