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

    web容器服务

    使用nginx,标明镜像作者信息,设定自己的web存放目录,请将默认的监听端口80更改为你自定义的端口,并且声明暴露的端口,容器启动时,能直接进入web代码的存放目录

    拉取nginx镜像

    sudo docker pull nginx:latest
    

    创建容器并获取配置文件

    sudo docker run --name=my_nginx1 -p 8080:80 -d nginx
    sudo docker exec -it [容器id] /bin/bash
    cat /etc/nginx/conf.d/default.conf
    


    修改配置文件

    将80端口改为4040并将root修改为web存放目录

    server {
        listen       4040;
        server_name  localhost;
    
        #charset koi8-r;
        #access_log  /var/log/nginx/host.access.log  main;
    
        location / {
            root   /usr/my_html;
            index  index.html index.htm;
        }
    
        #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   /usr/share/nginx/html;
        }
    
        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ .php$ {
        #    proxy_pass   http://127.0.0.1;
        #}
    
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ .php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}
    
        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /.ht {
        #    deny  all;
        #}
    }
    
    

    创建Dockerfile文件

    #基础镜像
    FROM nginx
    
    # 复制配置文件和自己的web存放目录
    copy default.conf /etc/nginx/conf.d/
    copy index.html /usr/my_html/
    
    #维护者信息
    MAINTAINER ljy 1730166565@qq.com
    
    #对外暴露端口
    expose 4040
    

    构建自己的nginx镜像

    先停止之前的容器

    sudo docker stop [容器id]
    

    把修改过的配置文件default.conf和自己写的index.html文件放在dockerfile所在的目录下(建议单独搞一个目录),并在该目录下打开终端,执行build命令

    sudo docker build -t mynginx .
    

    用该镜像构建一个容器

    sudo docker run --name=my_nginx3 -d -p 8080:4040 mynginx
    

    在浏览器中查看8080端口

    数据库容器服务

    可选择MysqlMariadb等,要求标明镜像作者信息,为了方便维护,需要能够查看容器内的配置信息,包括但不限于网络、应用配置文件等。在环境变量中设置好数据库的root密码且不允许空密码登录,创建一个测试数据库,指定用户名和密码。

    拉取mysql镜像

    sudo docker pull mysql:5.7
    

    创建mysql镜像所需文件

    1.创建Dockerfile

    FROM mysql:5.7
    
    #维护者信息![](https://img2020.cnblogs.com/blog/1322748/202004/1322748-20200424143922685-864176566.png)
    
    MAINTAINER ljy-1730166565@qq.com
    
    #禁止免密登录
    ENV MYSQL_ALLOW_EMPTY_PASSWORD no
    
    #root密码
    ENV MYSQL_ROOT_PASSWORD=mysql
    
    #将所需文件放到容器中
    COPY setup.sh /mysql/setup.sh
    COPY schema.sql /mysql/schema.sql
    COPY privileges.sql /mysql/privileges.sql
    
    #设置容器启动时执行的命令
    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.需要导入数据的mysql脚本命令schema.sql

    -- 创建数据库
    CREATE database `mysql_docker` default character set utf8 collate utf8_general_ci;
    
    use mysql_docker;
    
    -- 建表
    DROP TABLE IF EXISTS user;
    
    CREATE TABLE user (
      `id` varchar(20) NOT NULL,
      `name` varchar(40) DEFAULT NULL,
      `sex` varchar(10) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    
    -- 插入数据
    INSERT INTO user (`id`, `name`, `sex`)
    VALUES
        ('031702126','ljy','男');
    

    4.mysql权限设置命令privileges.sql

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

    构建自己的mysql镜像

    sudo docker build -t mysql2 .
    

    使用该镜像创建运行一个容器

    sudo docker run --name=msql -p 8000:3200 -d mysql2
    

    进入容器并使用之前的用户名密码进入数据库

    sudo docker exec -it msql /bin/bash
    mysql -u ljy -p
    


    运行情况

    查看容器内配置信息

    sudo docker inspect msql
    

  • 相关阅读:
    Mysql mysql lost connection to server during query 问题解决方法
    【转】程序员必须知道的几个Git代码托管平台
    FIFO存储器
    JUCE_FIFO实现分析
    【转】HashMap实现原理分析
    【转】int && 非常量右值
    【API】注册表编程基础-RegCreateKeyEx、RegSetValueEx
    【API】文件操作编程基础-CreateFile、WriteFile、SetFilePointer
    【逆向知识】裸函数(Naked函数)
    【逆向知识】堆栈图-汇编中的函数
  • 原文地址:https://www.cnblogs.com/ddaydream/p/12766901.html
Copyright © 2011-2022 走看看