第2次实践作业

上一次作业同学们实现了docker环境的安装和基本配置,已经能够从docker的官方镜像仓库中拉取镜像,初步实现了入门。然而,从官方仓库拉取的镜像是最简单的镜像,在实际应用中经常需要根据需求额外修改镜像,这就涉及到了镜像的定制。在docker中我们可以使用Dockerfile文件实现自定义镜像,本次作业需要完成2个Dockerfile编写实践,掌握编写Dockerfile文件的基本方法。


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

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

  • 拉取nginx镜像并运行
    sudo docker pull nginx:latest


碎碎念:家里网速慢,光第一步就做了将近一个小时,重启虚拟机好几次,切换网络好几遍,还好最终下载好了。

  • 查看是否已安装了 nginx
    sudo docker images

  • 修改 default.conf文件
    a.更改配置文件存放目录(将其放置主目录下)
    sudo docker cp <容器ID>:/etc/nginx/conf.d/default.conf .

b.发现文件是只读文件

c.修改文件,使其变成可读写
sudo chmod 666 default.conf

d.修改成功以后,修改文件内容
修改前:

修改后:

  • 编写一个简单的HTML文件(index.html),并在浏览器上运行试试

  • 编写dockerfile文件(Dockerfile)
    内容:

  • 两个文件准备就绪:

  • 先把之前运行的容器停掉,再从dockerfile所在目录下打开终端,构建自己的Nginx镜像。

  • 构建镜像
    sudo docker build -t gulyarnginx .

    构建失败了,有一处报错,这个报错应该是说文件路径问题,因此我在主目录下新建了一个文件夹(my),然后把三个文件拖入。

    然后在这个文件夹下打开终端,重新构建

    构建成功!(太好了!)

  • 运行容器


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

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

  • 创建mysql容器:
    docker pull mysql:5.7

  • 创建Dockerfile、privileges.sql、setup.sh、schema.sql文档
    新建一个文件夹mysql,里面再创建以下四个文档.

    (1)Dockerfile:

    黄色标出的是用户名和密码,待会登录数据库需要用到
    (2)setup.sh:(容器启动脚本)

    (3)schema.sql:(导入数据的mysql脚本)

    (4)privileges.sql:(mysql权限设置)

  • 创建mysql镜像
    sudo docker build -t mysql-g .

  • 启动容器 (指令中 mysql-g 是我之前创建的mysql镜像名称)
    sudo docker run --name mysql-g -p 3306:3306 -d mysql-g

  • 查看是否创建成功
    sudo docker ps

  • 进入容器:
    sudo docker exec -it mysql-g /bin/bash
    -登录数据库:
    使用docker用户登录数据库:mysql -u docker -p (我的自定义用户名:gulyar 密码:2541241)
    切换至docker_mysql数据库:use docker_mysql;
    查看表中的数据:select * from user;
    (注意语句后面的分号(已标出黄色))


(3)总结:

本次实验在第一次时候,因为网络问题,创建sql容器失败了,导致实验失败a。这是第二次做了,因为后续新实验用到了mysql,所以必须要创建成功才可以顺利完成后续的实验内容。不得不说,第二次做实验非常好上手,很快就完成了,并且理解了每一步操作的内容,这是我最大的进步,此外我也锻炼了我在linux中处理错误的能力,操作过程中出错了,会非常淡定的想办法,不会像之前一样惊恐,一看到报错就炸毛,我认为这也是我很大的进步,为后续实验奠定了一定的基础。

posted @ 2020-04-25 00:05  小同学-  阅读(144)  评论(0编辑  收藏  举报