系统综合实践第二次实践作业 前言

上一次作业同学们实现了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;
    系统综合实践第二次实践作业
前言