diff --git a/容器云/容器云应用.md b/容器云/容器云应用.md
new file mode 100644
index 0000000..7d0a8b2
--- /dev/null
+++ b/容器云/容器云应用.md
@@ -0,0 +1,436 @@
+
容器云实战
+
+**作者:行癫(盗版必究)**
+
+------
+
+## 一:环境介绍
+
+ 应用商城Mall重新实现全容器化部署,原应用商城系统各模块功能及系统架构如下:
+
+| 模块 | 使用技术 | 备注 |
+| :---------------: | :------: | :----------------------------------------------------: |
+| mall.sql | MySQL | 网站的数据库 |
+| dist目录 | Nginx | 网站的前端项目 |
+| mall-shopping | web项目 | 8081端口,商品/购物车/首页渲染等交互 |
+| mall-user | | 8082端口,提供用户相关的交互,如登录、注册、个人中心等 |
+| user-provider | 后端服务 | 提供用户相关服务 |
+| shopping-provider | | 提供购物车、推荐商品、商品等服务 |
+
+
+
+## 二:项目部署
+
+#### 1.数据库镜像
+
+ 制作数据库MySQL镜像,镜像名为mall-mysql:v1.1,设置数据库支持UTF-8编码,设定root用户的密码为123456,并设置服务开机自启
+
+```shell
+[root@xingdian ~]# docker pull mariadb:latest
+[root@xingdian ~]# docekr tag mariadb:latest chinaskill:mariadb:v1.1
+```
+
+#### 2.redis镜像
+
+ 制作Redis镜像,镜像名为chinaskill-redis:v1.1,使用centos:centos7.9.2009基础镜像,安装Redis服务,设置Redis免密,并关闭保护模式,开放端口6379,并设置服务开机自启
+
+```shell
+[root@xingdian redis]# ls
+Dockerfile redis-4.0.4 redis-4.0.4.tar.gz redis.conf
+```
+
+ redis下载地址:https://download.redis.io/releases/redis-4.0.4.tar.gz
+
+```shell
+[root@xingdian redis]# wget https://download.redis.io/releases/redis-4.0.4.tar.gz
+```
+
+ 准备redis配置文件
+
+```shell
+[root@xingdian redis]# git clone https://gitee.com/xingdiancloud/redids-config.git
+```
+
+ 编写Dockerfile文件
+
+```shell
+[root@xingdian redis]# cat Dockerfile
+FROM centos:centos7.5.1804
+MAINTAINER Chinaskill
+RUN yum -y install gcc make
+ADD redis-4.0.4.tar.gz /opt/
+RUN mv /opt/redis-4.0.4 /opt/redis
+WORKDIR /opt/redis
+RUN make && make install
+RUN rm -rf /opt/redis/redis.conf
+COPY redis.conf /opt/redis
+EXPOSE 6379
+CMD ["redis-server","/opt/redis/redis.conf"]
+```
+
+ 构建镜像
+
+```shell
+[root@xingdian redis]# docker build -t chinaskill-redis:v1.1 .
+```
+
+#### 3.zookeeper镜像
+
+ 编写Dockerfile制作ZooKeeper镜像,镜像名为chinaskill-zookeeper:v1.1,使用centos:7.9.2009基础镜像,安装ZooKeeper服务,开放端口2181;并设置服务开机自启
+
+```shell
+[root@xingdian zookeeper]# ls
+apache-zookeeper-3.6.3-bin Dockerfile jdk-8u211-linux-x64.tar.gz
+apache-zookeeper-3.6.3-bin.tar.gz jdk1.8.0_211
+```
+
+ zookeeper下载地址:https://dlcdn.apache.org/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3-bin.tar.gz
+
+```shell
+[root@xingdian zookeeper]# wget https://dlcdn.apache.org/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3-bin.tar.gz --no-check-certificate
+```
+
+ JDK下载地址:https://share.weiyun.com/LHhEjTmG
+
+ 编写Dockerfile文件
+
+```shell
+[root@xingdian zookeeper]# cat Dockerfile
+FROM centos:centos7.5.1804
+MAINTAINER Chinaskill
+ADD jdk-8u211-linux-x64.tar.gz /usr/local
+ADD apache-zookeeper-3.6.3-bin.tar.gz /usr/local/
+RUN yum -y install vim net-tools telnet tree git wget
+WORKDIR /usr/local
+ENV JAVA_HOME=/usr/local/jdk1.8.0_211
+ENV PATH=$JAVA_HOME/bin:$PATH
+ENV ZOOKEEPER_HOME=/usr/local/apache-zookeeper-3.6.3-bin
+RUN cp $ZOOKEEPER_HOME/conf/zoo_sample.cfg $ZOOKEEPER_HOME/conf/zoo.cfg
+EXPOSE 2181
+CMD $ZOOKEEPER_HOME/bin/zkServer.sh start-foreground
+```
+
+ 构建镜像
+
+```shell
+[root@xingdian zookeeper]# docker build -t chinaskill-zookeeper:v1.1 .
+```
+
+4.kafka镜像
+
+ 编写Dockerfile制作Kafka镜像,镜像名为chinaskill-kafka:v1.1,使用centos:centos7.9.2009基础镜像,安装Kafka服务,开放端口9092,并设置服务开机自启
+
+```shell
+[root@nfs-harbor kafka]# ls
+Dockerfile jdk-8u211-linux-x64.tar.gz kafka_2.11-2.1.0.tgz start.sh
+```
+
+ kafka下载地址:https://archive.apache.org/dist/kafka/2.1.0/kafka_2.11-2.1.0.tgz
+
+```shell
+[root@xingdian kafka]# wget https://archive.apache.org/dist/kafka/2.1.0/kafka_2.11-2.1.0.tgz
+```
+
+ JDK下载地址:https://share.weiyun.com/LHhEjTmG
+
+ 编写Dockerfile文件
+
+```shell
+[root@nfs-harbor kafka]# cat start.sh
+$KAFKA_HOME/bin/zookeeper-server-start.sh $KAFKA_HOME/config/zookeeper.properties &
+sleep 20
+$KAFKA_HOME/bin/kafka-server-start.sh $KAFKA_HOME/config/server.properties
+```
+
+```shell
+[root@nfs-harbor kafka]# cat Dockerfile
+FROM centos:7
+ADD jdk-8u211-linux-x64.tar.gz /usr/local
+ADD kafka_2.11-2.0.0.tgz /usr/local
+ENV JAVA_HOME=/usr/local/jdk1.8.0_211
+ENV PATH=$PATH:$JAVA_HOME/bin
+ENV KAFKA_HOME=/usr/local/kafka_2.11-2.0.0
+EXPOSE 9092
+COPY start.sh /
+CMD ["sh","/start.sh"]
+```
+
+ 构建镜像
+
+```shell
+[root@xingdian kafka]# docker build -t chinaskill-kafka:v1.1 .
+```
+
+#### 4.nginx镜像
+
+```shell
+[root@xingdian nginx]# ls
+default.conf nginx-1.22.0
+dist.tar.gz nginx-1.22.0.tar.gz
+Dockerfile nginx.conf
+gpmall-shopping-0.0.1-SNAPSHOT.jar shopping-provider-0.0.1-SNAPSHOT.jar
+gpmall-user-0.0.1-SNAPSHOT.jar user-provider-0.0.1-SNAPSHOT.jar
+jdk-8u211-linux-x64.tar.gz
+```
+
+ nginx下载地址:https://nginx.org/download/nginx-1.22.0.tar.gz
+
+ JDK下载地址:https://share.weiyun.com/LHhEjTmG
+
+```shell
+[root@xingdian nginx]# wget https://nginx.org/download/nginx-1.22.0.tar.gz
+```
+
+ nginx配置文件
+
+```shell
+[root@nfs-harbor nginx]# cat nginx.conf
+
+#user nobody;
+worker_processes 1;
+
+#error_log logs/error.log;
+#error_log logs/error.log notice;
+#error_log logs/error.log info;
+
+#pid logs/nginx.pid;
+
+
+events {
+ worker_connections 1024;
+}
+
+
+http {
+ include mime.types;
+ default_type application/octet-stream;
+
+ #log_format main '$remote_addr - $remote_user [$time_local] "$request" '
+ # '$status $body_bytes_sent "$http_referer" '
+ # '"$http_user_agent" "$http_x_forwarded_for"';
+
+ #access_log logs/access.log main;
+
+ sendfile on;
+ #tcp_nopush on;
+
+ #keepalive_timeout 0;
+ keepalive_timeout 65;
+
+ #gzip on;
+
+ server {
+ listen 80;
+ server_name localhost;
+
+ #charset koi8-r;
+
+ #access_log logs/host.access.log main;
+
+ location / {
+ root /opt/nginx/html;
+ index index.html index.htm;
+ }
+
+ #error_page 404 /404.html;
+
+ # redirect server error pages to the static page /50x.html
+ #
+ error_page 500 502 503 504 /50x.html;
+ location = /50x.html {
+ root html;
+ }
+ location /user {
+ proxy_pass http://127.0.0.1:8082;
+ }
+ location /shopping {
+ proxy_pass http://127.0.0.1:8081;
+ }
+ location /cashier {
+ proxy_pass http://127.0.0.1:8083;
+ }
+ # proxy the PHP scripts to Apache listening on 127.0.0.1:80
+ #
+ #location ~ \.php$ {
+ # proxy_pass http://127.0.0.1;
+ #}
+
+ # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
+ #
+ #location ~ \.php$ {
+ # root html;
+ # fastcgi_pass 127.0.0.1:9000;
+ # fastcgi_index index.php;
+ # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
+ # include fastcgi_params;
+ #}
+
+ # deny access to .htaccess files, if Apache's document root
+ # concurs with nginx's one
+ #
+ #location ~ /\.ht {
+ # deny all;
+ #}
+ }
+
+
+ # another virtual host using mix of IP-, name-, and port-based configuration
+ #
+ #server {
+ # listen 8000;
+ # listen somename:8080;
+ # server_name somename alias another.alias;
+
+ # location / {
+ # root html;
+ # index index.html index.htm;
+ # }
+ #}
+
+
+ # HTTPS server
+ #
+ #server {
+ # listen 443 ssl;
+ # server_name localhost;
+
+ # ssl_certificate cert.pem;
+ # ssl_certificate_key cert.key;
+
+ # ssl_session_cache shared:SSL:1m;
+ # ssl_session_timeout 5m;
+
+ # ssl_ciphers HIGH:!aNULL:!MD5;
+ # ssl_prefer_server_ciphers on;
+
+ # location / {
+ # root html;
+ # index index.html index.htm;
+ # }
+ #}
+
+}
+```
+
+ 编写Dockerfile文件
+
+```shell
+[root@xingdian nginx]# cat start.sh
+java -jar /opt/nginx/html/shopping-provider-0.0.1-SNAPSHOT.jar &
+sleep 20
+java -jar /opt/nginx/html/user-provider-0.0.1-SNAPSHOT.jar &
+sleep 20
+java -jar /opt/nginx/html/gpmall-shopping-0.0.1-SNAPSHOT.jar &
+sleep 20
+java -jar /opt/nginx/html/gpmall-user-0.0.1-SNAPSHOT.jar
+```
+
+```shell
+[root@xingdian nginx]# cat Dockerfile
+FROM centos:centos7.5.1804
+MAINTAINER Chinaskill
+ENV TZ=Asia/Shanghai
+ENV LANG=en_US.UTF-8
+ENV LANGUAGE=en_US:en
+ENV LC_ALL=en_US.UTF-8
+ADD jdk-8u211-linux-x64.tar.gz /usr/local
+WORKDIR /usr/local
+ENV JAVA_HOME=/usr/local/jdk1.8.0_211
+RUN yum -y install gcc openssl openssl-devel pcre-devel zlib-devel make
+ADD nginx-1.22.0.tar.gz /opt
+WORKDIR /opt/nginx-1.22.0
+RUN ./configure --prefix=/opt/nginx
+RUN make && make install
+ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/nginx/sbin:$JAVA_HOME/bin
+EXPOSE 80 443
+ADD dist.tar.gz /opt/nginx/html
+COPY gpmall-shopping-0.0.1-SNAPSHOT.jar /opt/nginx/html
+COPY gpmall-user-0.0.1-SNAPSHOT.jar /opt/nginx/html
+COPY shopping-provider-0.0.1-SNAPSHOT.jar /opt/nginx/html
+COPY user-provider-0.0.1-SNAPSHOT.jar /opt/nginx/html
+COPY nginx.conf /opt/nginx/conf/
+RUN chmod a+x /start.sh
+#RUN nohup java -jar /opt/nginx/html/shopping-provider-0.0.1-SNAPSHOT.jar &
+#RUN nohup java -jar /opt/nginx/html/user-provider-0.0.1-SNAPSHOT.jar &
+#RUN nohup java -jar /opt/nginx/html/gpmall-shopping-0.0.1-SNAPSHOT.jar &
+#RUN nohup java -jar /opt/nginx/html/gpmall-user-0.0.1-SNAPSHOT.jar &
+CMD /opt/nginx/sbin/nginx && /start.sh
+```
+
+ 镜像构建
+
+```shell
+[root@xingdian nginx]# docker build -t chinaskill-nginx:v1.1 .
+```
+
+#### 5.容器互联
+
+ 编写docker-compose
+
+```shell
+[root@xingdian cloud]# cat docker-compose.yml
+version: "3"
+services:
+ mysql.mall:
+ container_name: mall-mysql
+ image: chinaskill-mariadb:v1.1
+ environment:
+ MARIADB_ROOT_PASSWORD: 123456
+ restart: always
+ hostname: mysql.mall
+
+ redis.mall:
+ container_name: mall-redis
+ image: chinaskill-redis:v1.1
+ restart: always
+ hostname: redis.mall
+
+ zookeeper.mall:
+ container_name: mall-zookeeper
+ image: chinaskill-zookeeper:v1.1
+ restart: always
+ hostname: zookeeper.mall
+
+ kafka.mall:
+ depends_on:
+ - zookeeper.mall
+ container_name: mall-kafka
+ image: chinaskill-kafka:v1.1
+ restart: always
+ hostname: kafka.mall
+
+ mall:
+ container_name: mall-nginx
+ image: chinaskill-nginx:v1.1
+ links:
+ - mysql.mall
+ - redis.mall
+ - zookeeper.mall
+ - kafka.mall
+ ports:
+ - "83:80"
+```
+
+ 启动
+
+```shell
+[root@xingdian cloud]# docker-compose up -d
+```
+
+ 查看
+
+```shell
+[root@xingdian cloud]# docker-compose ps
+ Name Command State Ports
+----------------------------------------------------------------------------------------
+mall-kafka sh /a.sh Up 9092/tcp
+mall-mysql docker-entrypoint.sh mariadbd Up 3306/tcp
+mall-nginx /bin/sh -c /opt/nginx/sbin ... Up 443/tcp, 0.0.0.0:83->80/tcp,::
+ :83->80/tcp
+mall-redis redis-server /opt/redis/re ... Up 6379/tcp
+mall-zookeeper /bin/sh -c $ZOOKEEPER_HOME ... Up 2181/tcp
+```
+
+#### 6.浏览器访问
+
+