> 文章列表 > 一个Docker面试题目

一个Docker面试题目

一个Docker面试题目

编写Dockerfile脚本编译镜像,运行容器后实现对现有 mysql 数据库备份
环境信息:

  • mysql数据库地址192.168.0.10 端口 6600 用户 testuser 密码 123456 需要备份的数据库为 testdb
  • 需要在 192.168.0.11 服务器编写 dockerfile 脚本编译镜像,运行容器对上述 mysql 数据库做备份,dockerfile 以 alpine 为基础镜像编写,数据库备份文件请存放在 /var/mysqlbak 目录下并以日期命名

这里是Dockerfile脚本和实现步骤:
Dockerfile内容:

FROM alpine:latestRUN apk add --no-cache mysql-clientWORKDIR /var/mysqlbakENTRYPOINT mysqldump -u testuser -p123456 -h 192.168.0.10 --port 6600 testdb > $(date +%Y%m%d).sql

实现步骤:

  1. 在192.168.0.11服务器上创建Dockerfile文件,内容如上。
  2. 执行docker build -t mysql_backup . 构建镜像。
  3. 执行docker run -it mysql_backup运行容器。
  4. 容器启动后,会自动执行ENTRYPOINT中的命令。
  5. 该命令会使用mysql客户端连入指定的数据库服务器192.168.0.10,使用testuser和密码123456登录。
  6. 然后备份testdb数据库,并将备份文件名命名为日期,如20201231.sql。
  7. 备份文件会保存到容器内的/var/mysqlbak目录,也就是Dockerfile中指定的WORKDIR。
  8. 到此,testdb数据库的备份完成。可以通过docker cp命令将备份文件从容器内拷出。
  9. 以后每次运行该镜像的容器,都会自动完成testdb的备份,并命名为最新日期。
    通过Dockerfile脚本和docker命令,实现了自动备份指定mysql数据库的功能。可以根据需要定期运行容器,完成数据库的备份工作。