zoukankan      html  css  js  c++  java
  • 2017级系统综合实践第3次实践作业

    完成Docker-compose的安装

    ①下载docker-compose最新版本

    curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    

    ②修改目录权限,否则后续docker-compose up命令会报错

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

    创建软连接至一个PATH目录下,一般为/usr/bin

    ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
    


    docker-compose --version 出现版本号表示安装成功

    Dockerfile编写

    ①创建项目文件夹: touch docker-compose.yml dockerfile_mysql dockerfile_nginx dockerfile_php default.conf && mkdir mysql_data web && tree,其中default.conf为nginx的默认配置文件,mysql_data用来挂载mysql目录,web用来挂载nginx和php的目录

    ②拉取需要的镜像
    mysql: docker pull mysql

    docker pull php:7.4-fpm

    ③编辑配置文件

    • dockerfile_mysql
    #基础镜像
    FROM mysql
    #作者信息
    MAINTAINER lqy
    #设置root密码
    ENV MYSQL_ROOT_PASSWORD admin
    #禁止空密码登录
    ENV MYSQL_ALLOW_EMPTY_PASSWORD no
    
    • dockerfile_php
    #基础镜像
    FROM php:7.4-fpm
    #作者信息
    MAINTAINER lqy
    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_nginx
    #基础镜像
    FROM nginx
    #作者信息
    MAINTAINER lqy
    #声明暴露的端口
    EXPOSE 80
    
    • default.conf
    server {
        listen       80;        #修改映射端口
        server_name  localhost;
    
        location / {
            root   /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           /web/php;        #修改工作目录
            fastcgi_pass   myphp:9000;        #修改为容器名
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
    }
    
    • docker-compose.yml
    version: "3"
    services:
     nginx:
        image: mynginx_image                #指定镜像名
        container_name: mynginx             #指定容器名
        build:
          context: .
          dockerfile: dockerfile_nginx      #指定dockerfile文件
        ports:
          - "80:80"                       #修改端口映射
        volumes:
          - ./web:/usr/local/lnmp/web/html                 #挂载容器卷,本地/容器内修改文件后,另一方都会同步更新;
          - ./default.conf:/etc/nginx/conf.d/default.conf     #挂载配置文件
    
     php:
        image: myphp_image
        container_name: myphp
        build:
          context: .
          dockerfile: dockerfile_php
        environment:
          MYSQL_PASSWORD: admin            #设置好环境变量,在php代码中使用变量名直接引用
        volumes:
          - ./web:/usr/local/lnmp/web/php                  #挂载工作目录到本机web目录
    
     mysql:
       image: mysql_image
       container_name: mysql
       build:
          context: .
          dockerfile: dockerfile_mysql
       ports:
         - "3306:3306"
       volumes:
         - ./mysql_data:/var/lib/mysql       #挂载容器卷,实现数据同步,防止数据丢失
    

    ④在web目录中新建index.html和index.phpcd web && touch index.html index.php并编辑

    #index.html
    HELLO LQY
    
    #index.php
    <?php phpinfo();?>
    

    使用Compose实现多容器运行机制
    ①执行docker-compose文件docker-compose up -d --build


    ②查看容器 docker ps -a和docker images镜像

    ③分别访问测试页面index.html和index.php

    (4)服务测试
    ①进行连接部分修改

    ②创建数据库成功

    ③创建数据表成功

    ④新纪录插入成功

    ⑤修改成功

    ⑥mysql查看

    主要问题和解决方法

    ①那个选做,不是我不想做啊,我耗费了一个晚上,还是卡在了这里

    ②还是编译文件
    我的文件内容,像地址用户名什么的每次都会出一点问题,所以下次我一定要细心细心再细心,不能浪费太多时间

  • 相关阅读:
    数据结构之单链表的实现java
    从尾到头打印列表——牛客剑指offer
    Java重要类之LinkedList
    删除链表中重复的结点——牛客剑指offer
    二维数组中的查找——牛客剑指offer
    爬虫常见异常
    持续集成常见异常及排除方案
    VMware安装与基本使用
    web开发常见异常及处理
    Linux简单介绍与基本使用(微系统,)
  • 原文地址:https://www.cnblogs.com/liang-an/p/12852674.html
Copyright © 2011-2022 走看看