zoukankan      html  css  js  c++  java
  • 第2次实践作业

    第2次实践作业

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

    拉取nginx镜像,然后使用下面命令运行

    $ docker run --name nginx-test -p 8080:80 -d nginx
    

    通过浏览器进入localhost(127.0.0.1):8080可以访问nginx服务

    新建文件夹,复制nginx默认配置default.conf进文件夹,修改端口为1234以及root。

    文件夹内新建文件index.html

    文件夹中创建Dockerfile文件

    #Dockerfile
    FROM nginx
    #维护人的信息
    MAINTAINER 031702623
    
    COPY default.conf /etc/nginx/conf.d/
    COPY index.html /home/xiaoc/DockerFile/
    #暴露端口
    EXPOSE 0922
    

    使用Dockerfile构建镜像

    $ docker build -t nginx-cjy .
    

    运行该容器

    $ docker brun --name newtest -p 0922:1234 -d nginx-cjy
    

    在浏览器进入0922端口(设置的暴露端口)

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

    拉取mysql:5.7的镜像

    1.创建Dockerfile

    #基础镜像
    FROM mysql:5.7
    
    #维护者信息
    MAINTAINER CJY
    
    #设置不允许空密码登陆,且设置root密码
    ENV MYSQL_ALLOW_EMPTY_PASSWORD no
    ENV MYSQL_ROOT_PASSWORD=031702623
    
    #将所需文件放到容器中
    COPY setup.sh /mysql/setup.sh
    COPY schema.sql /mysql/schema.sql
    COPY privileges.sql /mysql/privileges.sql
    
    #挂载目录
    VOLUME ~/mysql-volume
    
    #设置容器启动时执行的命令
    CMD ["sh", "/mysql/setup.sh"]
    

    2.创建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`
    
    #重新设置mysql密码
    echo '4.开始修改密码....'
    mysql < /mysql/privileges.sql
    echo '5.修改密码完毕....'
    
    #sleep 3
    echo `service mysql status`
    echo `mysql容器启动完毕,且数据导入成功`
    
    tail -f /dev/null
    

    3.创建privileges.sql(mysql权限设置)

    use mysql;
    select host, user from user;
    -- 因为mysql版本是5.7,因此新建用户为如下命令:
    create user docker identified by '123456';
    -- 将docker_mysql数据库的权限授权给创建的docker用户,密码为123456:
    grant all on docker_mysql.* to docker@'%' identified by '123456' with grant option;
    -- 这一条命令一定要有:
    flush privileges;
    

    4.schema.sql(导入数据的mysql脚本命令)

    -- 创建数据库
    create database `docker_mysql` default character set utf8 collate utf8_general_ci;
    
    use docker_mysql;
    
    -- 建表
    DROP TABLE IF EXISTS user;
    
    CREATE TABLE user (
      `id` varchar(20) NOT NULL,
      `name` varchar(40) DEFAULT NULL,
      `sex` varchar(10) DEFAULT NULL,
      `major` varchar(255) DEFAULT NULL,
      `username` varchar(255) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    
    -- 插入数据
    INSERT INTO user (`id`, `name`, `sex`, `major`, `username`)
    VALUES
        ('031702623','cjy','male','computer science','xiaoc');
    
    

    使用Dockerfile构建镜像

    $ sudo docker build -t mysql_cjy .
    

    运行容器

    $ sudo docker run --name msql -p 3306:3306 -d mysql_cjy
    

    使用root登录(输入Dockerfile中设置的root密码登录)

    $ mysql -u root -p 
    

    查看databases(databases并且后面+;)

    $ show databases;
    

    使用数据库docker_mysql,并且查询信息(schema.sql中创建的数据库和表)

    $ use docker_mysql
    $ select * from user
    

    查看mysql变量

    $ show  variable
    

    查看容器配置信息

    $ sudo docker inspect msql
    

  • 相关阅读:
    m_Orchestrate learning system---三、session使用完整流程是什么
    m_Orchestrate learning system---四、多看参考文档很多事情很轻松就解决了
    m_Orchestrate learning system---五、学的越多,做的越快
    m_Orchestrate learning system---六、善用组件插件的好处是什么
    m_Orchestrate learning system---七、如何快速学好前端
    cocos2d0基础知识三个音符
    URAL 1727. Znaika&#39;s Magic Numbers(数学 vector)
    第13周项目2-纯虚函数形类家庭
    [cocos2dx注意事项009]试用quick-cocos2dx-2.2.4
    百度之星 1004 Labyrinth
  • 原文地址:https://www.cnblogs.com/replusone/p/12771189.html
Copyright © 2011-2022 走看看