第2次实践作业

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

1.从 docker hub拉取nginx作为基础镜像

sudo docker pull nginx


查看本地镜像

sudo docker images

2.创建一个容器并运行

sudo docker run -it nginx /bin/bash

查看容器工作目录

3.更改nginx的web存放目录

复制运行中nginx容器的配置文件,为后续修改监听端口备用

sudo docker cp <容器ID>:/etc/nginx/conf.d/default.conf .

在主机根目录下发现了default.conf文件,贼嗨

但是这个文件是只读文件,没法直接打开修改,用sudo gedit修改一下
isten为监听端口值,修改为2408
root为Web默认目录,修改为/usr/titin_html

sudo docker build -t mynginx .

注释单独放一行后就可以了

4.创建容器验证结果

sudo docker run --name my_nginx -p 8866:2408 -d mynginx

在浏览器地址中输入

http://localhost:8866/

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

1.拖取一个mysql镜像

sudo docker pull mysql:5.7


在文件夹mysql下创建文件如下
dockerfile

setup.sh

schema.sql

privileges.sql

2.构建mysql镜像,在Dockerfile所在的目录打开终端,运行命令

sudo docker build -t titinmysql .

运行容器

sudo docker run --name msql -p 3306:3306 -d titinmysql

查看是否创建成功

sudo docker ps

第一行可以看到44秒前创建成功了

3.进入容器并使用指定用户名和密码进入数据库

docker exec -it hbql /bin/bash
mysql -u titin -p

查看已经存在的数据库

show databases;

进入数据库并且查表

use docker_mysql
select * from user;

4.查看各类信息

退出并尝试用root密码登录,查看数据库

exit
mysql -u root -p
show databases;

查看配置信息

show variables;

查看日志信息

sudo docker logs hbsql

查看该容器信息

sudo docker inspect hbsql

问题及解决方案

  • 在编辑文件default.conf的时候,注释要单独放一行。

    不然就会这样出错
  • 命名容器的时候端口对应名字记得不要重复了
    我这里错了三次才成功

  总之这次实践是真的做了很久,确实对这个知识了解的比较少,所以也参考了许多人的做法。这次实践作业遇到了一些之前在ubantu系统里没遇到过的问题,收获了很多问题的解决方法,虽然耗时比较长,但是有一部分时间我都是在一些细碎的小细节上出了纰漏,所以这也是我的坏毛病,感谢这次作业能让我四处碰壁,之后看问题一定仔细去看。
  虽然这次实践做下来很累,但是最后做完了也是贼嗨。

posted @ 2020-04-23 16:07  一天能饿好多次  阅读(170)  评论(0编辑  收藏  举报