第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系统里没遇到过的问题,收获了很多问题的解决方法,虽然耗时比较长,但是有一部分时间我都是在一些细碎的小细节上出了纰漏,所以这也是我的坏毛病,感谢这次作业能让我四处碰壁,之后看问题一定仔细去看。
虽然这次实践做下来很累,但是最后做完了也是贼嗨。