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

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

    获取nginx镜像

    sudo docker pull nginx
    

    查看镜像情况

    sudo docker images
    

    启动nginx容器

    sudo docker run --name nginx-test -p 8080:80 -d nginx
    Sudo docker ps
    

    通过浏览器访问8080端口查看

    进入nginx容器并复制其配置信息:

    sudo docker exec -it 9fa0577f4261 /bin/bash
    cd /etc/nginx/conf.d
    cat default.conf
    

    在/usr/share/nginx路径下创建mydir文件夹,并在该文件下创建文件default.conf,其中监听端口自选,根目录就是放配置文件的地方

    在同一目录下创建dockerfile文件

    #基础镜像
    FROM nginx
    #维护人信息
    MAINTAINER dyssl
    
    #添加文件
    COPY default.conf /etc/nginx/conf.d/
    COPY index.html /usr/share/nginx/mydir/
    #暴露端口
    EXPOSE 5416
    

    在同一目录下创建index.html文件

    结构大概是这样

    在配置文件存放的目录下构建镜像(注意不要漏掉点哦)

    cd /usr/share/nginx/mydir
    sudo docker build -t zyh3nginx .
    

    启动容器并映射窗口

    sudo docker run --name zyh3nginx -d -p 5416:5416 zyh3nginx
    

    最后就可以通过浏览器来访问啦

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

    从镜像库中获取mysql:5.7镜像

    sudo docker pull mysql:5.7
    

    验证查看是否pull成功

    sudo docker images
    

    在~/路径下创建mysql文件夹,并在该文件下创建文件dockerfile文件

    #基础镜像
    FROM mysql:5.7
    #镜像作者
    MAINTAINER DysSl
    #设置不允许免密登录并设置root密码
    ENV MYSQL_ALLOW_EMPTY_PASSWORD no
    ENV MYSQL_ROOT_PASSWORD=106741
    #将配置文件放到容器中
    COPY setup.sh /mysql/setup.sh
    COPY schema.sql /mysql/schema.sql
    COPY privileges.sql /mysql/privileges.sql
    #设置容器启动时执行的命令
    CMD ["sh", "/mysql/setup.sh"]
    

    在同一目录下创建启动脚本setup.sh

    在同一目录下创建脚本命令schema.sql

    在同一目录下创建权限设置命令privileges.sql

    在配置文件存放的目录下构建镜像

    docker build -t zyh2mysql .
    

    启动容器并映射窗口

    docker run --name zyh2mysql -d -p 2424:2424 zyh2mysql
    

    进入容器

    sudo docker exec -it zyh2mysql /bin/bash
    

    登录数据库

    mysql -u docker -p
    

    切换至docker_mysql数据库

    use docker_mysql
    

    查看Student表中的数据

    select * from Student;
    

    查看容器的配置信息

    sudo docker inspect 3fccf6f5b712
    

    3.遇到的问题

    当时做web容器服务的时候,访问自己的端口报错403

    找了非常久内鬼是谁,最后查了一下日志文件发现是权限的问题

    解决办法:修改web目录的读写权限,或者是把nginx的启动用户改成目录的所属用户,重启Nginx即可解决

    sudo docker exec -it 070e18bc500b /bin/bash 
    chmod -R 777 /usr/share/nginx/mydir
    

    最后感谢那么多给我帮助的人

  • 相关阅读:
    单例模式
    抽象类的作用和应用场景
    java内部类的作用
    java多线程
    IO流--与properties集合配合使用
    IO流--序列化流与反序列化流
    8 个必备的PHP功能开发
    CSS3 box-shadow:
    移动平台的meta标签-----神奇的功效
    Android Screen Monitor抓取真机屏幕
  • 原文地址:https://www.cnblogs.com/dyssl/p/12768635.html
Copyright © 2011-2022 走看看