介绍
此次内容详细讲解了 Mall 商城的容器化部署全过程,涵盖从基础组件到整体编排的完整流程。内容包括在 master 节点上分别编写 Dockerfile 构建 MariaDB、Redis、Nacos-Registry、前端 Nginx 等服务的镜像,涉及基础镜像选择、软件安装、配置修改、端口开放、自启设置等关键步骤;还提供了基于 docker-compose 的多容器编排部署方案,以及基于 k8s 的容器编排配置,包括 Pod 定义、Service 设置等。,从镜像构建到服务编排,全方位呈现 Mall 商城的容器化部署技术,适合需要掌握商城容器化部署的开发者和运维人员参考学习
Nacos是阿里巴巴开源的一款动态服务发现、配置管理和服务管理平台,旨在简化微服务架构中的服务治理流程,为开发者提供易用、高效的服务注册与发现、配置管理、动态 DNS 等功能通过实战操作
1.容器化部署 MariaDB
在 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 开机自启。 完成后构建镜像
[root@master ~]#tar -zxvf tar -zxvf mall-swarm.tar.gz [root@master ~]#cd mall-swarm [root@master ~]#cp -rvf mall-repo /opt/ [root@master ~]# cat /etc/yum.repos.d/mall.repo [mall] name=mall enabled=1 gpgcheck=0 baseurl=ftp://192.168.30.10/mall-repo ---------------------------------------- [root@master ~]#cd mall-swarm/ [root@master ~]#mkdir mariadb [root@master ~]#cd maridb [root@master ~]#cp ../mall.sql . [root@master ~]#cp ../mall-repo . -------------------init.sh--------------------- #!/bin/bash mysql_install_db --user=root mysqld_safe --user=root & sleep 5 mysqladmin -uroot password 123456 mysql -uroot -p123456 -e "create database mall; use mall; source /root/mall.sql;grant all on *.* to 'reader'@'%' identified by '123456';" ----------------------------------------Dockerfile---------------------------------------- FROM centos:centos7.5.1804 MAINTAINER Chinaskill RUN rm -rf /etc/yum.repos.d/* COPY mall.repo /etc/yum.repos.d/ RUN yum install -y mariadb-server ENV LC_ALL en_US.UTF-8 COPY mall.sql /root/ COPY init.sh /root/ RUN sh /root/init.sh EXPOSE 3306 ENTRYPOINT ["mysqld_safe","--user=root"] 构建镜像: docker build -t chinaskillmall-mariadb:v1.1 -f Dockerfile .
2.容器化部署 Redis
在 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) 开放端口:637