zoukankan      html  css  js  c++  java
  • 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文件中的路径出错了

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

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

  • 相关阅读:
    vector 指针结果 排序
    C++移位或与操作
    Win7如何显示/隐藏Administrator账号
    一些常用的工具
    发布单机端DELPHI程序访问MySQL必备文件
    DBX error:Driver could not be properly initialized .... 解决办法
    终止当前循环,退出循环,退出当前过程的指令的什么
    Delphi XE中使用dbExpress连接MySQL数据库疑难问题解决
    控件缩写大全
    ClienDataSet 随手笔计(1)
  • 原文地址:https://www.cnblogs.com/linmzAa/p/12845504.html
Copyright © 2011-2022 走看看