• 系统综合实践第二次实践作业


    前言

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

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

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

    1.1、获取最新版的nginx镜像

    • sudo docker pull nginx

    我在第一步卡了好久,一开始出现docker无法启动,后来一直百度尝试解决,各种重启重装docker都不行。后来我把上次作业的阿里云加速器的一个文件:/etc/docker/daemon.json删掉,终于可以了。然后出现了新的问题,等了好久都没下载完,卡住不动了。我又重新安装阿里云镜像加速器,然后大功告成。

    • /安装阿里云镜像加速器/
      [root@localhost ~]# mkdir -p /etc/docker
      [root@localhost ~]# tee /etc/docker/daemon.json <<-'EOF'
      {
      "registry-mirrors": ["https://9cpn8tt6.mirror.aliyuncs.com"]
      }
      EOF
      [root@localhost ~]# systemctl daemon-reload
      [root@localhost ~]# systemctl restart docker
      ————————————————
      版权声明:本文为CSDN博主「julien71」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
      原文链接:https://blog.csdn.net/julien71/java/article/details/79760919

    1.2、查看nginx镜像是否拉取成功

    • sudo docker images

    1.3、启动nginx容器

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

    1.4、查看容器状态

    • sudo docker ps

    1.5、进入nginx容器并查看其配置信息

    • sudo docker exec -it 059c2a1d8994 /bin/bash
      cd /etc/nginx/conf.d
      cat default.conf

    1.6、在主目录中创建myweb文件夹下创建并修改default.conf文件

    创建并修改default.conf文件的监听端口和根目录
    将监听端口号listen改为1234
    将Web默认目录root修改为/home/zhanghui/myweb

    1.7.在同一目录下创建dockerfile文件并编辑

    1.8.在同一目录下创建index.html文件并编辑

    1.9.打开dockerfile文件并创建镜像

    • sudo docker build -t zhanghui_nginx .

    1.10.查看ssnginx是否创建成功

    • sudo docker images

    1.11.启动ssnginx容器并映射端口

    • sudo docker run --name zhanghui_nginx -p 1234:1234 -d zhanghui_nginx

    12.访问浏览器http://localhost:1234

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

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

    2.1、从镜像库中pull一个mysql镜像,版本为5.7

    • sudo docker pull mysql:5.7

    2.2、在主目录下的mysql文件中创建构建mysql所需的文件

    (1)dockerfile

    (2)setup.sh

    (3)schema.sql

    (4)privileges.sql

    2.3、创建镜像zh_mysql

    • sudo docker build -t zh_mysql .

    2.4、查看镜像

    • sudo docker images

    2.5、运行容器

    • sudo docker run --name zhmysql -p 3306:3306 -d zh_mysql

    2.6、查看容器状态

    • sudo docker ps -a

    2.7、查看日志记录

    • sudo docker logs zhmysql

    2.8、验证结果

    (1)执行exec命令进入lxtmysql容器

    • sudo docker exec -it lxtmysql /bin/bash

    (2)使用docker用户登录数据库

    • mysql -u docker -p
      输入密码通过验证 密码:123456

    (3)切换至docker_mysql数据库

    • use docker_mysql

    (4)查询user表并退出mysql

    • show tables;
  • 相关阅读:
    javascript 数组Array对象
    使div浮动层显示在Select组件上面
    CSS中expression使用简介
    Error: Error #2176: 某些动作(如显示弹出窗口的动作)只能通过用户交互来调用
    用.Net处理xmlHttp发送异步请求
    使用反射动态创建对象及调用对象方法
    Asp.net实现在线截图(大图截取为小图)
    一个webproxy代理类
    Asp.net如何截屏
    用 ASP.NET 做网站截图(代码示例)
  • 原文地址:https://www.cnblogs.com/booob/p/12770608.html
Copyright © 2020-2023  润新知