前言
云梦公司开发了一套基于SpringBoot+MyBatis微服务架构的ChinaSkillsMall电商系统,
并实现全容器化部署,ChinaSkillsMall 电商应用系统架构如图 1 所示,系统说明如表 2 所示。
库组件、Redis 消息组件、RabbitMQ 消息组件、Nacos-Registry 注册
中心服务组件和前端 Nginx 组件按照要求进行容器化。(所需要的软件包 mall-swarm.tar.gz
在 http 服务中)。 【适用平台】私有云
【题目 1】容器化部署 MariaDB[2 分]
在 master 节 点 上 编 写 /root/mall-swarm/Dockerfile-mariadb 文 件 构 建
chinaskillmall-mariadb:v1.1 镜像,具体要求如下:
(1)基础镜像:centos:centos7.5.1804;
(2)作者:Chinaskill;
(3)安装并初始化 mariadb,密码:root;
(4)设置数据库编码为 UTF-8;
(5)开放端口:3306
(6)设置 mariadb 开机自启。
FROM centos:7.5.1804 MAINTAINER Chinaskill RUN rm -rvf /etc/yum.repos.d/* ADD ftp.repo /etc/yum.repos.d/ ADD gpmall.sql /root/ RUN yum install -y mariadb-server RUN sed -i "13cport = 8066" /etc/my.cnf.d/server.cnf ADD init.sh /root/init.sh RUN chmod +x /root/init.sh RUN /root/init.sh ENV LC_ALL en_US.UTF-8 EXPOSE 3306 EXPOSE 8066 CMD ["mysqld_safe"]
【题目 2】容器化部署 Redis[1.5 分]
在 master 节点上编写/root/mall-swarm/Dockerfile-redis 文件构建 chinaskillmall-redis:v1.1
镜像,具体要求如下:
(1)基础镜像:centos:centos7.5.1804;
(2)作者:Chinaskill;
(3)安装 redis 服务;
(4)修改配置文件中的 bind 127.0.0.1 为 bind 0.0.0.0;
(5)设置 redis 免密,并关闭保护模式;
(6)开放端口:6379;
(7)设置服务开机自启。
完成后构建镜像,并提交 master 节点的用户名、密码和 IP 到答题框。
1.docker build 构建镜像,有正确的返回计 0.4 分
2.启动容器,进入容器查看 redis 的 info 信息,有 connected_clients:1 计 0.5 分
3.进入容器查看配置文件,取消保护模式计 0.6 分
FROM 192.168.200.200/chinaskillproject/centos:7.5.1804 MAINTAINER Chinaskill RUN rm -rvf /etc/yum.repos.d/* COPY ftp.repo /etc/yum.repos.d/local.repo RUN yum clean all RUN yum list RUN yum -y install redis RUN sed -i -e 's@bind 127.0.0.1@bind 0.0.0.0@g' /etc/redis.conf RUN sed -i -e 's@protected-mode yes@protected-mode no@g' /etc/redis.conf RUN sed -i -e 's@daemonize yes@daemonize no@g' /etc/redis.conf EXPOSE 6379 #ENTRYPOINT ["/usr/bin/redis-server","/etc/redis.conf"] ENTRYPOINT redis-server /etc/redis.conf CMD ["redis-server"]
【题目 3】容器化部署 Nacos-Registry[2 分]
在 master 节 点 上 编 写 /root/mall-swarm/Dockerfile-nacos 文 件 构 建
chinaskillmall-nacos:v1.1 镜像,具体要求如下:
(1)基础镜像:centos:centos7.5.1804;
(2)作者:Chinaskill;
(3)安装 jdk 工具和 nacos-server 工具;
(4)设置 nacos 服务开机自启。
[root@master mall-swarm]# cat Dockerfile-nacos FROM centos:centos7.5.1804 MAINTAINER chinaskill RUN rm -rf /etc/yum.repos.d/* COPY local.repo /etc/yum.repos.d/ ADD nacos-server-1.1.0.tar.gz /usr/local/ ADD jdk-8u121-linux-x64.tar.gz /usr/local/ ENV NACOS_HOME /usr/local/nacos ENV JAVA_HOME /usr/local/jdk1.8.0_121 ENV PATH $PATH:$NACOS_HOME/bin:$JAVA_HOME/bin EXPOSE 8848 CMD startup.sh -m standalone && tail -f $NACOS_HOME/logs/start.out
【题目 4】容器化部署前端服务[2 分]
【题目 5】编排部署 ChinaSkillsMall 商城[2.5 分]
在 master 节点上编写/root/mall-swarm/docker-compose.yaml 文件,具体要求如下:
(1)容器 1 名称:chinaskillmall-admin;镜像:mall/mall-admin:1.0-SNAPSHOT;端口
映射:8080:8080;
(2)容器 2 名称: chinaskillmall-auth;镜像:mall/mall-auth:1.0-SNAPSHOT;端口映
射:8401:8401;
(3)容器 3 名称:chinaskillmall-gateway;镜像:mall/mall-gateway:1.0-SNAPSHOT;
端口映射:8201:8201;
(4)容器 4 名称:chinaskillmall-mysql;镜像:chinaskillmall-mariadb:v1.1;端口映射:
3306:3306;
(5)容器 5 名称:chinaskillmall-nacos;镜像:chinaskillmall-nacos:v1.1;端口映射:
8848:8848;
(6)容器 6 名称:chinaskillmall-nginx;镜像:chinaskillmall-nginx:v1.1;端口映射:
8888:80;
(7)容器 1 名称:chinaskillmall-redis;镜像:chinaskillmall-redis:v1.1;端口映射:
6379:6379。
完成后编排部署 ChinaSkillsMall 商城。然后提交 master 节点的用户名、密码和 IP 到答
题框。
version: '3' services: db: image: chinaskill-mariadb:v1.1 container_name: chinaskill-mysql ports: - 3306:3306 redis: image: chinaskill-redis:v1.1 container_name: chinaskill-redis ports: - 6379:6379 .. nginx: image: chinaskill-nginx:v1.1 container_name: chinaskill-nginx ports: - 8888:80 - ....
在浏览器上通过 http://IP:8888 访问 mall-swarm