• 第2次实践作业


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

    推荐apache或nginx,要求标明镜像作者信息,安装必要的工具以方便维护;设定你自己的web存放目录,安全起见,请将默认的监听端口80更改为你自定义的端口,并且声明暴露的端口,容器启动时,能直接进入web代码的存放目录。

    参考:参考1,参考2,参考3,参考4

    1、拉取镜像

    搜索镜像

    docker seaech nginx
    


    确认镜像已安装

    docker images nginx
    


    拉取镜像

    docker pull nginx
    

    2、挂载

    创建待挂载的目录

    sudo mkdir -p /data/nginx/{conf,conf.d,html,logs}
    

    创建配置文件
    启动临时的nginx

    docker run -d --name nginx nginx
    

    拷贝配置文件

    sudo docker cp nginx:/etc/nginx/conf.d/default.conf conf.d/
    

    删除临时的nginx

    docker stop nginx
    docker rm nginx
    

    启动nginx

    docker run --name nginx -d -p 80:80 -v /data/nginx/html:/usr/share/nginx/html -v /data/nginx/logs:/var/log/nginx -v /data/nginx/conf.d:/etc/nginx/conf.d  nginx
    

    这里是第一次错误……没注意没有目录,以为会自动创建,就跳过不管了(造成后面好几次创建镜像出错),正确应该是自己创建好

    3、配置Dckerfile并创建镜像

    创建目录后,把nginx容器的默认配置default.conf(上一步操作失误的情况下,这步变成了conf.d然后失败)复制进文件夹中,一共三个文件
    第二个错误,因为第一个错误,根据报错查了好久,没考虑到之前没挂载到文件,以为是文件路径不对。一开始更改了文件路径。(忘记截图了,下面是正确的)

    1.创建Dckerfile

    2.创建index.html

    3.复制default.conf(修改监听和目录)

    这是创建镜像和容器都成功,但是因为第二个错误所以显示不出来。搜索了好久,因为没有太多参考,只参考了:参考,但是没有用()

    错误如下:

    这是在发现第二个错误后更改文件路径后的运行结果。

    最后的正确显示:

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

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

    参考:参考
    搭建步骤

    1、首先创建Dckerfile:

    2、编写容器启动脚本setup.sh:

    3、需要导入数据的mysql脚本命令schema.sql:

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

    5、创建镜像

    docker build -t 名字 .
    


    执行docker images查看该镜像是否存在于镜像列表中:

    创建成功。

    6、启动容器

    docker run -d -p 13306:3306 名字
    

    启动容器,并将端口映射到本地的13306端口,命令行如图所示:

    容器启动成功。

    验证结果

    1、通过进入容器在命令行验证


    执行exec命令进入容器:

    docker exec -it id /bin/bash
    

    前文中创建了docker_mysql数据库,并在此数据库中创建了user表,同时将数据库的连接授权赋予了新建的docker用户,因此验证过程为:
    使用docker用户登录数据库:

    mysql -u docker -p
    


    输入密码123456通过登录验证
    切换至docker_mysql数据库:

    use docker_mysql;
    


    查看数据库中的表:

    show tables;
    


    查看表中的数据:

    select * from user;
    

  • 相关阅读:
    校外实习-7.28
    校外实习-7.27
    校外实习-7.26
    校外实习-7.25
    校外实习-第三周总结
    校外实习-7.22
    校外实习-7.21
    校外实习-7.20
    作业九—总结
    结对编程项目---四则运算(截图总结篇)
  • 原文地址:https://www.cnblogs.com/wawu/p/12769951.html
Copyright © 2020-2023  润新知