2020系统综合实践 第2次实践作业
目录
1.实现一个自定义的web容器服务
推荐 apache或 nginx,要求标明镜像作者信息,安装必要的工具以方便维护;设定你自己的 web存放目录,安全起见,请将默认的监听端口 80更改为你自定义的端口,并且声明暴露的端口,容器启动时,能直接进入 web代码的存放目录。
1.1拉取基础镜像
- 拉取最新的nginx镜像
docker pull nginx
- 查看是否成功拉取
1.2文件配置
- 查看并复制复制默认的nginx配置代码
sudo docker run --name nginx-test -p 8080:80 -d nginx
sudo docker exec -it [容器id] /bin/bash
cd /etc/nginx/conf.d
cat default.conf
- 在主目录(/home/xb)下创建文件夹myDocker,存放如下几个文件
- default.conf
在复制的代码的基础上将listen端口号改为2333,将root目录修改为刚才创建的文件夹目录
- Dockerfile(后来把01去掉了)
- index.html
1.3使用Dockerfile创建定制nginx
- 进入刚才创建的目录/home/xb/myDocker,创建镜像xbnginx
sudo docker build -t xbnginx .
- 查看是否创建成功
docker images
1.4运行容器验证结果
- 运行一个容器(上一步创建的镜像有点问题重新创了个xbnginx3这里就不截图了)
sudo docker run --name xbnginx01 -p 1859:2333 -d xbnginx3
- 在firefox查看localhost:1859,查看是否对应自定义index.html
2.实现一个自定义的数据库容器服务
可选择 Mysql,Mariadb等,要求标明镜像作者信息,为了方便维护,需要能够查看容器内的配置信息,包括但不限于网络、应用配置文件等。在环境变量中设置好数据库的 root密码且不允许空密码登录,创建一个测试数据库,指定用户名和密码。
2.1拉取mysql
- 拉取mysql 5.7
2.2文件配置
- 在主目录(/home/xb)下创建文件夹mysql,存放如下几个文件
- Dockerfile
- privileges.sql
- schema.sql
- setup.sh
2.3使用Dockerfile创建定制mysql
- 进入刚才创建的目录/home/xb/mysql,创建镜像xbsql
sudo docker build -t xbsql .
- 查看是否创建成功
docker images
2.4运行容器验证结果
- 运行一个容器并进入
sudo docker run --name sqltest0 -p 3306:3306 -d xbsql
sudo docker exec -it sqltest0 /bin/bash
- 输入密码,进入数据库(用户xb)
mysql -u xb -p
- 查看已创建的数据库
show databases
- 进入数据库docker_mysql查询刚才创建的表user
use docker_mysql
select * from user;
- exit退出,尝试用root用户登录
mysql -u root -p
- 查看mysql配置信息(部份)
show variables
- exit退出容器,查看容器信息
docker inspect sqltest0
3.总结
3.1 教程推荐
- 这次实验对我来说难度比较大,即使看了教程也还有很多地方需要看同学的博客才明白要怎么做...这里推荐一个很实用的docker基础教程:Docker.html(思维导图)
3.2 问题解决
- 这次难点主要在如何下手,有了思路之后过程中倒是没遇到什么大问题,中间有遇到一个警告:
创建容器时WARNING: IPv4 forwarding is disabled. Networking will not work.
在最后插入:vim /usr/lib/sysctl.c/00-system.conf
重启network服务:net.ipv4.ip_forward=1
删除错误的容器,再次创建即可systemctl restart network