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

    (1)实现一个自定义的web容器服务(nginx)

    ①拉取nginx镜像

    ②在用户目录下创建Dockerfile目录,目录内用来存放Dockerfile及要用到的文件

    ③通过命令 docker run --name nginxtest -d nginx启动一个名为nginxtest的容器

    ④将容器内的default.conf文件(nginx配置文件)拷贝到宿主机的Dockerfile目录

    ⑤修改该配置文件的监听端口为12345,并将web存放目录修改为my-html

    ⑥编辑Dockerfile配置文件

    ⑦构建自定义镜像

    ⑧启动容器并进入镜像

    ⑨查看网页

    (2)实现一个自定义的数据库容器服务)(MySQL)

    ①拉取mysql5.7镜像

    ②在用户目录下新建mysqlDockerfile目录,并创建如下四个文件

    Dockerfile:用来构建自定义镜像
    setup.sh:用来初始化sql,并导入sql配置语句
    priviliges.sql:用来新建数据库用户及分配表的权限
    schema.sql:用来新建数据库,新建表并插入数据
    ③四个文件的配置及说明如下:

    • Dockerfile
    
    FROM mysql:5.7#不允许空密码登录
    ENV MYSQL_ALLOW_EMPTY_PASSWORD no
    #设置root密码
    ENV MYSQL_ROOT_PASSWORD admin
    
    #拷贝所需文件
    COPY setup.sh /mysql/setup.sh
    COPY schema.sql /mysql/schema.sql
    COPY privileges.sql /mysql/privileges.sql
    
    #设置容器启动时执行的命令
    CMD ["sh","/mysql/setup.sh"]
    
    #设置暴露端口
    EXPOSE 3306
    
    • setup.sh
    #!/bin/bash
    set -e
    
    #查看mysql服务的状态,方便调试,这条语句可以删除
    echo `service mysql status`
    
    echo '1.启动mysql....'
    #启动mysql
    service mysql start
    sleep 3
    echo `service mysql status`
    
    echo '2.开始导入数据....'
    #导入数据
    mysql < /mysql/schema.sql
    echo '3.导入数据完毕....'
    
    sleep 3
    echo `service mysql status`
    
    #增加用户docker
    mysql < /mysql/privileges.sql
    echo '成功添加用户docker'
    
    #sleep 3
    echo `service mysql status`
    echo `mysql容器启动完毕,且数据导入成功`
    
    tail -f /dev/null
    
    • schema.sql
    create database `S_C` default character set utf8 collate utf8_general_ci;
    
    use S_C;
    
    DROP TABLE IF EXISTS `S`;
    
    CREATE TABLE `S`(
    `Sno` varchar(255) NOT NULL,
    `Sname` varchar(255) NOT NULL,
    `Sex` varchar(5) NOT NULL,
    CHECK(`Sex`='男' OR `Sex`='女'),
    PRIMARY KEY(`Sno`)
    );
    
    INSERT INTO `S`(`Sno`,`Sname`,`Sex`) VALUES('171709012','沈鸿骁','男');
    
    • privileges.sql
    use mysql;
    select host, user from user;
    create user docker identified by '123456';
    -- 将S_C数据库的权限授权给创建的用户docker,密码为123456:
    grant all on S_C.* to docker@'%' identified by '123456' with grant option;
    -- 这一条命令一定要有:
    flush privileges;
    

    docker bulid -t mysql-dicky .构建自定义镜像

    docker run --name mysql-dicky -p 8081:3306 -d mysql-dicky 运行容器

    docker logs mysql-dicky查看运行日志

    docker exec -it mysql-dicky bash进入容器并使用sql语句查看数据库及表内容

    mysql -u docker -p以docker身份登录mysql并查看表格数据

  • 相关阅读:
    droid开发:如何打开一个.dcm文件作为位图?
    AndroidStudio3.0 Canary 8注解报错Annotation processors must be explicitly declared now.
    Android 异步加载神器Loader全解析
    Android实现RecyclerView的下拉刷新和上拉加载更多
    Android之ViewFlipper的简单使用
    云计算之路-阿里云上:2014年6月11日17点遇到的CPU 100%状况团队
    云计算之路-阿里云上:黑色1秒,微软的问题还是阿里云的问题?团队
    [网站公告]18:07-18:20阿里云SLB故障造成网站不能正常访问团队
    上周热点回顾(6.2-6.8)团队
    云计算之路-阿里云上:受够了OCS,改用ECS+Couchbase跑缓存团队
  • 原文地址:https://www.cnblogs.com/ShenHXbloc/p/12769974.html
Copyright © 2011-2022 走看看