zoukankan      html  css  js  c++  java
  • 系统综合实践2

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

    • 获取nginx镜像
    docker pull nginx
    

    在这里插入图片描述

    • 查看镜像
    docker images
    

    在这里插入图片描述

    • 先写好nginx配置文件,并和dockerfile放入同一目录下
    • 运行一个nginx容器,找一下默认的配置default.conf,复制这个文件中的配置默认目录的代码
    sudo docker run --name nginx-test -p 8080:80 -d nginx
    sudo docker exec -it [容器id] /bin/bash
    cd /etc/nginx/conf.d
    cat default.conf
    

    在这里插入图片描述
    在这里插入图片描述

    • 把default.conf的内容复制到本地主机新的文default.conf中,端口号修改为3600,并把root修改为自己的目录

    在这里插入图片描述

    • default.conf配置文件
    server {
        listen       3600;
        server_name  localhost;
    
        #charset koi8-r;
        #access_log  /var/log/nginx/host.access.log  main;
    
        location / {
            root   /usr/jasonginx/;
            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文件

    在这里插入图片描述

    • Dockerfile
    # Base images 基础镜像
    FROM nginx
    
    #MAINTAINER 维护者信息
    MAINTAINER jaso
    
    
    #WORKDIR 相当于cd
    WORKDIR /usr/jasonginx/
    
    #复制配置文件及自己的web存放目录
    COPY default.conf /etc/nginx/conf.d/
    COPY index.html /usr/jasonginx/
    
    #EXPOSE 映射端口
    EXPOSE 8080
    
    • 创建一个自己的html文件

    在这里插入图片描述
    在这里插入图片描述

    • 关掉之前运行的容器,在自己的Dockerfile文件所在目录打开终端,开始构建自己的nginx镜像
    docker build -t jasonginx .
    

    在这里插入图片描述

    • 运行容器
    docker run --name jaso_nginx -p 8080:3600 -d jasonginx
    

    在这里插入图片描述
    在这里插入图片描述

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

    • pull一个mysql镜像
    docker pull mysql:5.7
    

    在这里插入图片描述

    • 创建构建mysql镜像所需的文件
    1. Dockerfile
     #设置基础镜像
    FROM mysql:5.7
    
    #镜像作者信息
    MAINTAINER jaso
    
    #配置基础环境,不允许空密码登录,并设置初始密码
    ENV MYSQL_ALLOW_EMPTY_PASSWORD no
    ENV MYSQL_ROOT_PASSWORD=jaso123456
    
    #将所需文件放到容器中
    COPY setup.sh /mysql/setup.sh
    COPY schema.sql /mysql/schema.sql
    COPY privileges.sql /mysql/privileges.sql
    
    #设置容器启动时执行的命令
    CMD ["sh", "/mysql/setup.sh"]
    
    1. schema.sql
    -- 创建数据库
    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(20) DEFAULT NULL,
      `sex` varchar(10) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    
    -- 插入数据
    INSERT INTO user (`id`, `name`, `sex`)
    VALUES
        ('1111','jaso','man');
    
    1. privileges.sql
     use mysql;
    select host, user from user;
    -- 因为mysql版本是5.7,因此新建用户为如下命令:
    create user jaso identified by '123456';
    -- 将docker_mysql数据库的权限授权给创建的jaso用户,密码为123456:
    grant all on docker_mysql.* to jaso@'%' identified by '123456' with grant option;
    -- 这一条命令一定要有:
    flush privileges;
    
    1. 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
    
    • 构建mysql镜像,在Dockerfile所在的目录打开终端,运行命令
    docker build -t jasomysql .
    

    在这里插入图片描述

    运行容器

    docker run --name msql -p 3306:3306 -d jasomysql
    

    在这里插入图片描述- 查看是否创建成功

    docker ps
    

    在这里插入图片描述

    • 进入容器
    docker exec -it msql /bin/bash
    

    在这里插入图片描述

    • 使用指定用户名和密码进入数据库
    mysql -u jaso -p
    

    在这里插入图片描述

    • 查看已经存在的数据库
    show databases;
    

    在这里插入图片描述

    • 进入数据库并且查表
    use docker_mysql
    select * from user;
    

    在这里插入图片描述
    在这里插入图片描述

    • 使用exit退出登录,然后使用root密码登录
    exit
    mysql -u root -p
    

    在这里插入图片描述

    • 查看数据库
    show databases;
    

    在这里插入图片描述

    • 查看mysql的配置信息
    show variables;
    

    在这里插入图片描述

    • 使用exit退出这个容器,然后查看日志信息
    exit
    docker logs msql
    

    在这里插入图片描述

    • 查看这个容器的信息
    sudo docker inspect msql
    

    在这里插入图片描述

  • 相关阅读:
    2.ECMAScript 5.0
    1.Javascript简介
    9.定位
    HDU2032 杨辉三角
    HDU2058 The sum problem
    HDU2091 空心三角形
    HDU1166 敌兵布阵(树状数组模板题)
    HDU2049 不容易系列之(4)——考新郎
    Python网络爬虫与信息提取(三)(正则表达式的基础语法)
    HDU6576 Worker
  • 原文地址:https://www.cnblogs.com/JasonL-S/p/12763110.html
Copyright © 2011-2022 走看看