diff --git a/deploy/docker-demo/pom.xml b/deploy/docker-demo/pom.xml
new file mode 100644
index 00000000..d7e7f123
--- /dev/null
+++ b/deploy/docker-demo/pom.xml
@@ -0,0 +1,85 @@
+
+
+
+ jdchain-root
+ com.jd.blockchain
+ 1.2.1.RELEASE
+ ../../pom.xml
+
+ 1.3.0
+ 4.0.0
+
+ docker-demo
+
+
+ jdchain-demo
+
+
+ maven-resources-plugin
+ 3.0.2
+
+
+ copy-resources
+ validate
+
+ copy-resources
+
+
+
+ UTF-8
+ ${project.basedir}/src/main/docker/zip
+ false
+
+
+ ${project.basedir}/../deploy-peer/target/
+ false
+
+ jdchain-peer-${project.version}.RELEASE.zip
+
+
+
+
+ ${project.basedir}/../deploy-gateway/target/
+ false
+
+ jdchain-gateway-${project.version}.RELEASE.zip
+
+
+
+
+
+
+
+
+
+
+ com.spotify
+ docker-maven-plugin
+ 1.2.2
+
+
+
+
+ build-image
+
+ package
+
+ build
+
+
+
+
+
+
+ jdchain-demo
+ ${project.version}
+
+ ${project.basedir}/src/main/docker
+
+
+
+
+
+
\ No newline at end of file
diff --git a/deploy/docker-demo/readme.md b/deploy/docker-demo/readme.md
new file mode 100644
index 00000000..eb4034f1
--- /dev/null
+++ b/deploy/docker-demo/readme.md
@@ -0,0 +1,41 @@
+# jdchain-demo镜像使用说明
+本镜像主要为快速构建JDChain测试环境使用,内嵌固定的公私钥,不可用于生产正式环境。
+JDChain在docker中的安装路径:/export/jdchain,网关对外端口为:8080。可通过docker-compose-all文件来修改端口。
+demo环境中加载了部分测试数据,区块高度:22,交易总数:23,用户总数:6,数据账户总数:3,合约总数:2。
+
+## 如何生成镜像
+1. 需要预先在deploy-peer和deploy-gateway中生成zip安装包;
+2. 本项目中执行:mvn clean package;会在docker环境中生成jdchain-peer镜像;
+3. 生成镜像文件。执行resource中:zip.sh,可生成镜像的tar.gz压缩包;
+
+## 镜像快速使用
+1.在已经安装docker工具的环境中,装入jdchain-demo镜像:
+````
+docker load -i jdchain-demo_1.3.0.tar.gz
+````
+2.启动脚本
+每次执行启动脚本时,会删除原有的容器,然后重新构建全新的容器。
+所以每次执行之后,会清除原先链上新增的区块。
+````
+sh start-net.sh
+````
+3.卸载容器
+如果不再使用容器,在start-net.sh脚本所在路径下执行:
+````
+docker-compose -f docker-compose-all.yaml down
+````
+
+## SDK连接网关参数
+````
+ip=localhost
+port=8080
+#默认公钥的内容(Base58编码数据);
+keys.default.pubkey=3snPdw7i7PisoLpqqtETdqzQeKVjQReP2Eid9wYK67q9z6trvByGZs
+#默认私钥的内容(加密的Base58编码数据);在 pk-path 和 pk 之间必须设置其一;
+keys.default.privkey=177gk2PbxhHeEdfAAqGfShJQyeV4XvGsJ9CvJFUbToBqwW1YJd5obicySE1St6SvPPaRrUP
+#默认私钥的解码密码;
+keys.default.privkey-password=8EjkXVSTxMFjCvNNsTo8RBMDEVQmk7gYkW4SCDuvdsBG
+````
+
+
+
diff --git a/deploy/docker-demo/src/main/docker/Dockerfile b/deploy/docker-demo/src/main/docker/Dockerfile
new file mode 100644
index 00000000..616e1b74
--- /dev/null
+++ b/deploy/docker-demo/src/main/docker/Dockerfile
@@ -0,0 +1,35 @@
+FROM centos:8.2.2004
+
+# install tools
+RUN yum install wget -y \
+ && wget -O /etc/yum.repos.d/epel-7.repo http://mirrors.aliyun.com/repo/epel-7.repo \
+ && yum install java net-tools nc crontabs expect unzip -y \
+ && yum install langpacks-zh_CN.noarch -y \
+ && echo "LANG=zh_CN.utf8" >> /etc/locale.conf \
+ && source /etc/locale.conf \
+ && yum clean all
+
+WORKDIR /export/jdchain
+COPY zip/* /export/jdchain/
+
+# env
+ENV RELEASE_DIR=/export/jdchain
+ENV RELEASE_VERSION=1.3.0
+#ENV DATA_DIR=/shared
+ENV NAME=conf
+ENV SERVER_NAME_PEER=deploy-peer
+ENV SERVER_NAME_GW=deploy-gateway
+
+COPY script/* /export/jdchain/
+RUN chmod +x /export/jdchain/*.sh
+
+# ports
+EXPOSE 8080
+#EXPOSE 16000
+#EXPOSE 16010
+#EXPOSE 16020
+#EXPOSE 16030
+
+#ENTRYPOINT ["/bin/sh","-c","/export/jdchain/start.sh"]
+ENTRYPOINT sh /export/jdchain/start.sh
+
diff --git a/deploy/docker-demo/src/main/docker/script/shutdown.sh b/deploy/docker-demo/src/main/docker/script/shutdown.sh
new file mode 100644
index 00000000..8cf6d207
--- /dev/null
+++ b/deploy/docker-demo/src/main/docker/script/shutdown.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+
+ps -ef|grep 'jdchain'|grep -v grep|cut -c 9-15|xargs kill -9
+
diff --git a/deploy/docker-demo/src/main/docker/script/start.sh b/deploy/docker-demo/src/main/docker/script/start.sh
new file mode 100644
index 00000000..a6cc134c
--- /dev/null
+++ b/deploy/docker-demo/src/main/docker/script/start.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+cd $RELEASE_DIR
+
+# invoke it once again;
+#gw_pid_file="./gw/bin/PID.log"
+#if [ ! -f gw_pid_file ] ; then
+# echo "get the PID.log, only to start the peer and gateway."
+ unzip -o conf.zip
+
+ for i in `seq 0 3`
+ do
+ unzip -n -d ./peer$i jdchain-peer-$RELEASE_VERSION.RELEASE.zip
+ chmod +x ./peer$i/bin/*
+ done
+
+ unzip -n -d ./gw jdchain-gateway-$RELEASE_VERSION.RELEASE.zip
+ chmod +x ./gw/bin/*
+#fi
+
+sh ./peer0/bin/peer-startup.sh
+sh ./peer1/bin/peer-startup.sh
+sh ./peer2/bin/peer-startup.sh
+sh ./peer3/bin/peer-startup.sh
+sleep 30
+sh ./gw/bin/startup.sh
+
+tail -f /dev/null
diff --git a/deploy/docker-demo/src/main/docker/zip/conf.zip b/deploy/docker-demo/src/main/docker/zip/conf.zip
new file mode 100644
index 00000000..8f4c3d97
Binary files /dev/null and b/deploy/docker-demo/src/main/docker/zip/conf.zip differ
diff --git a/deploy/docker-demo/src/main/resources/docker-compose-all.yaml b/deploy/docker-demo/src/main/resources/docker-compose-all.yaml
new file mode 100644
index 00000000..b42268f9
--- /dev/null
+++ b/deploy/docker-demo/src/main/resources/docker-compose-all.yaml
@@ -0,0 +1,36 @@
+version: '2'
+
+services:
+ demo:
+ image: "jdchain-demo:1.3.0"
+ container_name: jdchain-demo
+ networks:
+ jdchain_default:
+ aliases:
+ - demo
+ hostname: demo
+ restart: always
+ ports:
+ - "11010:11010"
+ - "7080:7080"
+ - "10080:10080"
+ - "10081:10081"
+ - "11011:11011"
+ - "7081:7081"
+ - "10082:10082"
+ - "10083:10083"
+ - "11012:11012"
+ - "7082:7082"
+ - "10084:10084"
+ - "10085:10085"
+ - "11013:11013"
+ - "7083:7083"
+ - "10086:10086"
+ - "10087:10087"
+ - "8080:8080"
+# volumes:
+# - "./logs:/export/jdchain/peer0/logs"
+
+networks:
+ jdchain_default:
+ driver: bridge
diff --git a/deploy/docker-demo/src/main/resources/start-net.sh b/deploy/docker-demo/src/main/resources/start-net.sh
new file mode 100644
index 00000000..7eafc55d
--- /dev/null
+++ b/deploy/docker-demo/src/main/resources/start-net.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+echo "停止network"
+docker-compose -f docker-compose-all.yaml down
+echo "启动jdchain"
+docker-compose -f docker-compose-all.yaml up -d
diff --git a/deploy/docker-demo/src/main/resources/zip.sh b/deploy/docker-demo/src/main/resources/zip.sh
new file mode 100755
index 00000000..3305c646
--- /dev/null
+++ b/deploy/docker-demo/src/main/resources/zip.sh
@@ -0,0 +1,9 @@
+#/bin/bash
+
+# all in one;
+allIn1_file="./jdchain-demo_1.3.0.tar.gz"
+if [ -f $allIn1_file ] ; then
+ rm -rf $allIn1_file
+fi
+docker save jdchain-demo:1.3.0 -o jdchain-demo_1.3.0.tar
+gzip jdchain-demo_1.3.0.tar
diff --git a/deploy/pom.xml b/deploy/pom.xml
index 98b06e0a..2b416ee0 100644
--- a/deploy/pom.xml
+++ b/deploy/pom.xml
@@ -20,6 +20,7 @@
../core
deploy-gateway
deploy-peer
+ docker-demo