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
    
    在最后插入:
    net.ipv4.ip_forward=1
    
    重启network服务:
    systemctl restart network
    
    删除错误的容器,再次创建即可
原文地址:https://www.cnblogs.com/xbrucken/p/12764060.html