作业链接

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

  • 获取 nginx 镜像

2017级系统综合实践 第2次实践作业

  • 查看镜像情况
    2017级系统综合实践 第2次实践作业

  • 运行 nginx 容器,并查看容器的工作目录
    2017级系统综合实践 第2次实践作业

  • 修改 nginx 的 web 存放目录
    2017级系统综合实践 第2次实践作业

  • 编辑 dockerfile
    2017级系统综合实践 第2次实践作业

  • 构建镜像
    2017级系统综合实践 第2次实践作业

  • 创建容器验证结果
    2017级系统综合实践 第2次实践作业

2017级系统综合实践 第2次实践作业

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

  • pull mysql 5.7
    2017级系统综合实践 第2次实践作业

  • 为了便于管理,创建 mysql 文件夹,包含以下文件
    2017级系统综合实践 第2次实践作业

    • 编写 Dockerfile

      FROM mysql:5.7
      #基础镜像
      
      maintainer huaranmeng
      #维护者信息
      
      ENV MYSQL_ALLOW_EMPTY_PASSWORD no
      #不允许空密码登录
      
      ENV MYSQL_ROOT_PASSWORD=123456
      #root密码
      
      COPY setup.sh /mysql/setup.sh
      COPY schema.sql /mysql/schema.sql
      COPY privileges.sql /mysql/privileges.sql
      #所需文件
      
      CMD ["sh", "/mysql/setup.sh"]
      #启动命令
      
    • 编写容器启动脚本 setup.sh

      #查看mysql服务的状态,方便调试,这条语句可以删除
      echo `service mysql status`
      
      echo '1.启动mysql....'
      #启动mysql
      service mysql start
      sleep 3
      echo `service mysql status`
      
      echo '2.开始导入数据....'
      #导入数据
      mysql < /mysql/schema.sql
      echo '3.导入数据完毕....'
      
      sleep 3
      echo `service mysql status`
      
      #重新设置mysql密码
      echo '4.开始修改密码....'
      mysql < /mysql/privileges.sql
      echo '5.修改密码完毕....'
      
      #sleep 3
      echo `service mysql status`
      
    • 需要导入数据的 mysql 脚本命令 schema.sql

      -- 创建数据库
      create database `docker_mysql` default character set utf8 collate utf8_general_ci;
      
      use docker_mysql;
      
      -- 建表
      DROP TABLE IF EXISTS test;
      
      CREATE TABLE test (
       `id` bigint(20) NOT NULL,
       `name` varchar(255) DEFAULT ""
      ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
      
      -- 插入数据
      INSERT INTO test (`id`, `name`)
      VALUES
      (33999,'hrm');
      
    • mysql 权限设置命令 privileges.sql

      use mysql;
      select host, user from user;
      -- 因为mysql版本是5.7,因此新建用户为如下命令:
      create user docker identified by '123456';
      -- 将docker_mysql数据库的权限授权给创建的docker用户,密码为123456:
      grant all on docker_mysql.* to docker@'%' identified by '123456' with grant option;
      -- 这一条命令一定要有:
      flush privileges;
      
  • 创建镜像
    2017级系统综合实践 第2次实践作业

  • 运行容器
    2017级系统综合实践 第2次实践作业

  • 查看容器

2017级系统综合实践 第2次实践作业

  • 进入容器,并使用 docker 用户登录数据库

    docker exec -it [容器id] /bin/bash
    

    2017级系统综合实践 第2次实践作业

  • 切换到 docker_mysql 数据库
    2017级系统综合实践 第2次实践作业

  • 查看 test 表中的数据
    2017级系统综合实践 第2次实践作业

  • 退出,使用 root 登录
    2017级系统综合实践 第2次实践作业

  • 查看数据库
    2017级系统综合实践 第2次实践作业

相关文章:

  • 2021-08-18
  • 2021-11-29
  • 2021-07-23
  • 2021-12-19
  • 2021-09-13
  • 2021-09-01
  • 2021-08-07
  • 2022-01-05
猜你喜欢
  • 2021-12-14
  • 2021-06-17
  • 2021-07-05
  • 2021-07-13
  • 2021-12-10
  • 2022-02-22
  • 2022-03-08
相关资源
相似解决方案