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并查看表格数据

  • 相关阅读:
    js-格式化数字保留两位小数-带千分符
    java-byte[]图片在页面展示
    bootstrap-fileupload-上传文件控件
    css-让div永远在最底部
    hibernate-DetachedCriteria实现关联表条件复查
    eclipse-搭建maven的war项目集合spring注解方式
    spring-注解
    eclipse-mvn打包跳过junit测试类
    Spring-注解控件介绍
    java-读取类中的属性名称和值
  • 原文地址:https://www.cnblogs.com/ShenHXbloc/p/12769974.html
Copyright © 2011-2022 走看看