docs(README): add doc for developers and use rocketmqinc as public dockerhub
diff --git a/README.md b/README.md
index 53c82bd..4e05cf8 100644
--- a/README.md
+++ b/README.md
@@ -7,21 +7,26 @@
 ## Table of Contents
 - [Overview](#overview)
 - [Quick Start](#quick-start)
-    - [Deploy RocketMQ Operator](#deploy-rocketmq-operator)
-    - [Prepare Volume Persistence](#prepare-volume-persistence)
-        - [Prepare HostPath](#prepare-hostpath)
-        - [Prepare Storage Class of NFS](#prepare-storage-class-of-nfs)
-    - [Define Your RocketMQ Cluster](#define-your-rocketmq-cluster)
-    - [Create RocketMQ Cluster](#create-rocketmq-cluster)
-    - [Verify the Data Storage](#verify-the-data-storage)
-        - [Verify HostPath Storage](#verify-hostpath-storage)
-        - [Verify NFS storage](#verify-nfs-storage)
+  - [Deploy RocketMQ Operator](#deploy-rocketmq-operator)
+  - [Prepare Volume Persistence](#prepare-volume-persistence)
+    - [Prepare HostPath](#prepare-hostpath)
+    - [Prepare Storage Class of NFS](#prepare-storage-class-of-nfs)
+  - [Define Your RocketMQ Cluster](#define-your-rocketmq-cluster)
+  - [Create RocketMQ Cluster](#create-rocketmq-cluster)
+  - [Verify the Data Storage](#verify-the-data-storage)
+    - [Verify HostPath Storage](#verify-hostpath-storage)
+    - [Verify NFS storage](#verify-nfs-storage)
 - [Horizontal Scale](#horizontal-scale)
-    - [Name Server Cluster Scale](#name-server-cluster-scale)
-    - [Broker Cluster Scale](#broker-cluster-scale)
-        - [Up-scale Broker in Out-of-order Message Scenario](#up-scale-broker-in-out-of-order-message-scenario)
+  - [Name Server Cluster Scale](#name-server-cluster-scale)
+  - [Broker Cluster Scale](#broker-cluster-scale)
+    - [Up-scale Broker in Out-of-order Message Scenario](#up-scale-broker-in-out-of-order-message-scenario)
 - [Topic Transfer](#topic-transfer)
-- [Clean the Environment](#clean-the-environment)
+- [Clean the Environment](#clean-the-environment)
+- [Development](#development)
+  - [Prerequisites](#prerequisites)
+  - [Build](#build)
+    - [Operator](#operator)
+    - [Broker and Name Server Images](#broker-and-name-server-images)
 
 ## Overview
 
@@ -165,7 +170,7 @@
   # size is the the name service instance number of the name service cluster
   size: 1
   # nameServiceImage is the customized docker image repo of the RocketMQ name service
-  nameServiceImage: docker.io/library/rocketmq-namesrv:4.5.0-alpine
+  nameServiceImage: rocketmqinc/rocketmq-namesrv:4.5.0-alpine
   # imagePullPolicy is the image pull policy
   imagePullPolicy: Always
   # storageMode can be EmptyDir, HostPath, NFS
@@ -204,7 +209,7 @@
   # replicaPerGroup is the number of replica broker in each group
   replicaPerGroup: 1
   # brokerImage is the customized docker image repo of the RocketMQ broker
-  brokerImage: docker.io/library/rocketmq-broker:4.5.0-alpine
+  brokerImage: rocketmqinc/rocketmq-broker:4.5.0-alpine
   # imagePullPolicy is the image pull policy
   imagePullPolicy: Always
   # allowRestart defines whether allow pod restart
@@ -449,3 +454,47 @@
 ```
 
 > Note: the NFS and HostPath persistence data will not be deleted by default.
+
+## Development
+
+### Prerequisites
+
++ [git](https://git-scm.com/downloads)
++ [go](https://golang.org/dl/) version v1.12+.
++ [mercurial](https://www.mercurial-scm.org/downloads) version 3.9+
++ [docker](https://docs.docker.com/install/) version 17.03+.
++ Access to a Kubernetes v1.11.3+ cluster.
++ [dep](https://golang.github.io/dep/docs/installation.html) version v0.5.0+.
++ [operator-sdk](https://github.com/operator-framework/operator-sdk) version v0.11.0+
+
+### Build
+
+For developers who want to build and push the operator-related images to the docker hub, please follow the instructions below.
+
+#### Operator
+
+RocketMQ-Operator uses ```operator-sdk``` to generate the scaffolding and build the operator image. You can refer to the [operator-sdk user guide](https://github.com/operator-framework/operator-sdk/blob/master/doc/user-guide.md) for more details.
+
+If you want to push the newly build operator image to your own docker hub, please modify the ```DOCKERHUB_REPO``` variable in the ```create-operator.sh``` script using your own repository. Then run the build script:
+
+```
+$ ./create-operator.sh
+```
+
+#### Broker and Name Server Images
+
+RocketMQ-Operator is based on customized images of ```Broker``` and ```Name Server```, which are build by ```build-broker-image.sh``` and ```build-namesrv-image.sh``` respectively. Therefore, the images used in the ```Broker``` and ```NameService``` CR yaml files should be build by these scripts.
+
+You can also modify the ```DOCKERHUB_REPO``` variable in the scripts to push the newly build images to your own repository:
+
+```
+$ cd images/broker
+$ ./build-broker-image.sh
+```
+
+```
+$ cd images/namesrv
+$ ./build-namesrv-image.sh
+```
+
+> Note: for users who just want to use the operator, there is no need to build the operator and customized broker and name server images themselves. Users can simply use the default official images which are maintained by the RocketMQ community. 
\ No newline at end of file
diff --git a/docs/cn/README.md b/docs/cn/README.md
index ae8c732..eee417b 100644
--- a/docs/cn/README.md
+++ b/docs/cn/README.md
@@ -167,7 +167,7 @@
   # size is the the name service instance number of the name service cluster
   size: 1
   # nameServiceImage is the customized docker image repo of the RocketMQ name service
-  nameServiceImage: docker.io/library/rocketmq-namesrv:4.5.0-alpine
+  nameServiceImage: rocketmqinc/rocketmq-namesrv:4.5.0-alpine
   # imagePullPolicy is the image pull policy
   imagePullPolicy: Always
   # storageMode can be EmptyDir, HostPath, NFS
@@ -205,7 +205,7 @@
   # replicaPerGroup is the number of replica broker in each group
   replicaPerGroup: 1
   # brokerImage is the customized docker image repo of the RocketMQ broker
-  brokerImage: docker.io/library/rocketmq-broker:4.5.0-alpine
+  brokerImage: rocketmqinc/rocketmq-broker:4.5.0-alpine
   # imagePullPolicy is the image pull policy
   imagePullPolicy: Always
   # allowRestart defines whether allow pod restart
diff --git a/example/rocketmq_v1alpha1_broker_cr.yaml b/example/rocketmq_v1alpha1_broker_cr.yaml
index 745b9b9..3064333 100644
--- a/example/rocketmq_v1alpha1_broker_cr.yaml
+++ b/example/rocketmq_v1alpha1_broker_cr.yaml
@@ -28,7 +28,7 @@
   # replicaPerGroup is the number of each broker cluster
   replicaPerGroup: 1
   # brokerImage is the customized docker image repo of the RocketMQ broker
-  brokerImage: docker.io/library/rocketmq-broker:4.5.0-alpine
+  brokerImage: rocketmqinc/rocketmq-broker:4.5.0-alpine
   # imagePullPolicy is the image pull policy
   imagePullPolicy: Always
   # allowRestart defines whether allow pod restart
diff --git a/example/rocketmq_v1alpha1_nameservice_cr.yaml b/example/rocketmq_v1alpha1_nameservice_cr.yaml
index c685f03..3479950 100644
--- a/example/rocketmq_v1alpha1_nameservice_cr.yaml
+++ b/example/rocketmq_v1alpha1_nameservice_cr.yaml
@@ -21,7 +21,7 @@
   # size is the the name service instance number of the name service cluster
   size: 1
   # nameServiceImage is the customized docker image repo of the RocketMQ name service
-  nameServiceImage: docker.io/library/rocketmq-namesrv:4.5.0-alpine
+  nameServiceImage: rocketmqinc/rocketmq-namesrv:4.5.0-alpine
   # imagePullPolicy is the image pull policy
   imagePullPolicy: Always
   # storageMode can be EmptyDir, HostPath, NFS
diff --git a/images/broker/build-broker-image.sh b/images/broker/build-broker-image.sh
index 5c6c711..0b6f31d 100755
--- a/images/broker/build-broker-image.sh
+++ b/images/broker/build-broker-image.sh
@@ -33,7 +33,7 @@
 fi
 
 ROCKETMQ_VERSION=$1
-DOCKERHUB_REPO=docker.io/library/rocketmq-broker
+DOCKERHUB_REPO=rocketmqinc/rocketmq-broker
 
 checkVersion $ROCKETMQ_VERSION
 
diff --git a/images/namesrv/build-namesrv-image.sh b/images/namesrv/build-namesrv-image.sh
index 82aa811..8934f30 100755
--- a/images/namesrv/build-namesrv-image.sh
+++ b/images/namesrv/build-namesrv-image.sh
@@ -33,7 +33,7 @@
 fi
 
 ROCKETMQ_VERSION=$1
-DOCKERHUB_REPO=docker.io/library/rocketmq-namesrv
+DOCKERHUB_REPO=rocketmqinc/rocketmq-namesrv
 
 checkVersion $ROCKETMQ_VERSION
 
diff --git a/images/try-images.sh b/images/try-images.sh
index 1b1d129..9a7275a 100755
--- a/images/try-images.sh
+++ b/images/try-images.sh
@@ -15,8 +15,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-NAMESRV_DOCKERHUB_REPO=docker.io/library/rocketmq-namesrv
-BROKER_DOCKERHUB_REPO=docker.io/library/rocketmq-broker
+NAMESRV_DOCKERHUB_REPO=rocketmqinc/rocketmq-namesrv
+BROKER_DOCKERHUB_REPO=rocketmqinc/rocketmq-broker
 ROCKETMQ_VERSION=4.5.0
 
 start_namesrv_broker()