1.部分
(1)任务1 Docker CE及私有仓库安装任务(5分)
1.在master、node1、node2、cicd-node各节点中分别安装DockerCE和docker-compose。(1分)
懒得写
2.在cicd-node节点安装Registry私有仓库,导入/opt/containerk8s/docker/images目录下所有镜像,并推送到Registry私有仓库。
懒得写
3.在node1节点上从仓库中拉取mysql:latest和wordpress:latest镜像,创建/root/wproject/docker-compse.yaml文件,编排部署wordpress,并设置 restart策略。
version: '2'
services:
mysql:
image: mysql:5.6
expose:
- "3306"
restart: always
environment:
- MYSQL_ROOT_PASSWORD=123456
wordpress:
image: wordpress:latest
ports:
- "82:80"
restart: always
environment:
- WORDPRESS_DB_HOST=mysql
- WORDPRESS_DB_USER=root
- WORDPRESS_DB_PASSWORD=123456
4.在node1节点上停止并删除上述部署的wordpress容器。
[root@localhost 2020config]# docker-compose -f docker-compose.yml up -d
Creating network "2020config_default" with the default driver
Creating 2020config_mysql_1 ... done
Creating 2020config_wordpress_1 ... Done
[root@localhost 2020config]# docker-compose -f docker-compose.yml down
Stopping 2020config_wordpress_1 ... done
Stopping 2020config_mysql_1 ... done
Removing 2020config_wordpress_1 ... done
Removing 2020config_mysql_1 ... done
Removing network 2020config_default
(2)任务2 基于容器的web应用系统部署任务(10分)
将该公司开发的基于微服务架构的web应用系统Chinaskillmall实现全容器化部署(web应用系统Chinaskillmall容器化所需要的所有软件包在/opt/containerk8s/ Chinaskillmall目录下)。Chinaskillmall应用系统架构图如下:
模块 |
使用技术 |
备注 |
chinaskillmall.sql |
Mysql |
网站的数据库 |
dest目录 |
Nginx |
网站的前端项目 |
chinaskillmall -shopping |
web项目 |
8081端口,商品/购物车/首页渲染等交互 |
chinaskillmall -user |
8082端口,提供用户相关的交互,如登录、注册、个人中心等 |
|
user-provider |
后端服务 |
提供用户相关服务 |
shopping-provider |
提供购物车、推荐商品、商品等服务 |
请将mysql数据库组件、redis组件和Zookeeper组件按照要求进行容器化,其他组件已经实现容器化,直接从仓库中拉取镜像运行容器即可(Chinaskillmall-Kafka:v1.1、Chinaskillmall-nginx:v1.1、Chinaskillmall-jar:v1.1):
1.编写Dockerfile制作数据库MySQL镜像,生成镜像名为Chinaskillmall-mysql:v1.1,并推送其到私有仓库。具体要求如下:
(1)基于centos基础镜像;
(2)指定作者为Chinaskill;
(3)安装mariadb数据库,并使用root用户进行数据库初始化;设置数据库支持UTF-8编码;设定root用户的密码为123456,并给root用户赋予远程访问的权限;
(4)创建数据库Chinaskillmall并使用Chinaskillmall数据库,导入Chinaskillmalldb.sql;
(5)开放3306端口;
(6)设置服务自启动。
dockerfile 如下 --单纯实现功能 没有刻意去处理layer和cache 有要求自己优化 懒得搞我
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
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
CMD ["mysqld_safe"]
2.编写Dockerfile制作Redis镜像,生成镜像名为Chinaskillmall-Redis:v1.1,并推送到私有仓库。具体要求如下:
(1)基于centos基础镜像;
(2)指定作者为Chinaskill;
(3)安装Redis服务,暴露6379端口;
(4)设置服务自启动。
dockerfile如下 需要优化自己搞 仅供参考
FROM 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.编写Dockerfile制作Zookeeper镜像,生成镜像名为Chinaskillmall-Zookeeper:v1.1,并推送到私有仓库。具体要求如下:
(1)基于centos基础镜像;
(2)指定作者为Chinaskill;
(3)安装Zookeeper服务,暴露2181端口;
(4)设置服务自启动。
下次整理
4.创建/root/Chinaskillmallproject/docker-compose.yaml文件,使用上述镜像编排部署Chinaskillmall应用系统。
下次写 这部分 设计 kafka zk 集群问题
这个gpmall 容器化的 一共6个 images 其他的懒得写了很简单 ---- zk kafka redis mariadb jar(四个jar包 需注意启动依赖顺序 这里不多说) nginx(注意负载文件的写入就行了)
cicd的东西 换一个文章写点
来源:oschina
链接:https://my.oschina.net/u/4395489/blog/4844629