【任务 2】容器云应用部署:Docker Compose 编排部署[7.0 分] 【适用平台】私有云 Hyperf 是一个高性能、高灵活性的渐进式 PHP 协程框架,内置协程服务器及大量常用 的组件,性能较传统基于 PHP-FPM 的框架有质的提升,提供超高性能的同时,也保持着极 其灵活的可扩展性。请根据要求完成数据库服务 MariaDB、缓存服务 Redis、微服务 Hyperf 及前端服务 Nginx 按照要求进行容器化。
【题目 1】容器化 MariaDB 服务[1 分] 编写Dockerfile文件构建hyperf-mariadb:v1.0镜像,具体要求如下:(需要用到的软件包: Hyperf.tar.gz) (1)基础镜像:centos:7.9.2009; (2)完成 MariaDB 服务的安装; (3)声明端口:3306; (4)设置数据库 root 用户的密码为 root; (5)将提供的数据库文件 hyperf_admin.sql 导入数据库; (6)设置服务开机自启。 完成后构建镜像,并提交 master 节点的用户名、密码和 IP 地址到答题框。
1.镜像构建成功得 0.5 分;
2.数据库安装且导入数据成功得 0.5 分。
[root@k8s-master-node1 images]# docker load -i centos_7.9.2009.tar #mysql初始化自启动脚本 [root@k8s-master-node1 Hyperf]# cat mysql_init.sh #!/bin/bash mysql_install_db --user=root mysqld_safe --user=root & sleep 8 mysqladmin -u root password 'root' mysql -uroot -proot -e "grant all on *.* to 'root'@'%' identified by 'root'; flush privileges;" mysql -uroot -proot -e " source /opt/hyperf_admin.sql;" #镜像本地yum源 [root@k8s-master-node1 Hyperf]# cat local.repo [hypref] name=hypref baseurl=file:///root/yum gpgcheck=0 enabled=1 [root@k8s-master-node1 Hyperf]# cat Dockerfile-mariadb FROM centos:centos7.9.2009 MAINTAINER Chinaskills RUN rm -rf /etc/yum.repos.d/* COPY local.repo /etc/yum.repos.d/ COPY yum /root/yum ENV LC_ALL en_US.UTF-8 RUN yum -y install mariadb-server COPY sql /opt/ COPY mysql_init.sh /opt/ RUN bash /opt/mysql_init.sh EXPOSE 3306 CMD ["mysqld_safe","--user=root"] [root@k8s-master-node1 Hyperf]# docker build -t hyperf-mariadb:v1.0 -f Dockerfile-mariadb .
【题目 2】容器化 Redis 服务[1 分] 编写 Dockerfile 文件构建 hyperf-redis:v1.0 镜像,具体要求如下:(需要用到的软件包: Hyperf.tar.gz) (1)基础镜像:centos:7.9.2009; (2)安装 Redis 服务; (3)关闭保护模式; (4)声明端口:6379; (5)设置服务开机自启。 完成后构建镜像,并提交 master 节点的用户名、密码和 IP 地址到答题框。
1.镜像构建成功的 0.5 分;
2.Redis 服务安装成功且配置正确得 0.5 分。
[root@k8s-master-node1 Hyperf]# cat Dockerfile-redis FROM centos:centos7.9.2009 MAINTAINER huhy RUN rm -rf /etc/yum.repos.d/* COPY local.repo /etc/yum.repos.d/ COPY yum /root/yum RUN yum -y install redis RUN sed -i 's/127.0.0.1/0.0.0.0/g' /etc/redis.conf && \ sed -i 's/protected-mode yes/protected-mode no/g' /etc/redis.conf EXPOSE 6379 CMD ["/usr/bin/redis-server","/etc/redis.conf"] [root@k8s-master-node1 Hyperf]# docker build -t hyperf-redis:v1.0 -f Dockerfile-redis .
【题目 3】容器化 Nginx 服务[0.5 分] 编写 Dockerfile 文件构建 hyperf-nginx:v1.0 镜像,具体要求如下:ÿ