diff --git a/bash/tools/creating_data/save-docker-images.sh b/bash/tools/creating_data/save-docker-images.sh
new file mode 100644
index 0000000..98facb0
--- /dev/null
+++ b/bash/tools/creating_data/save-docker-images.sh
@@ -0,0 +1,56 @@
+#! /usr/bin/env bash
+#   COPYRIGHT NOTICE STARTS HERE
+#
+#   Copyright 2018 © Samsung Electronics Co., Ltd.
+#
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+#
+#   COPYRIGHT NOTICE ENDS HERE
+# boilerplate
+RELATIVE_PATH=../ # relative path from this script to 'common-functions.sh'
+if [ "$IS_COMMON_FUNCTIONS_SOURCED" != YES ] ; then
+    SCRIPT_DIR=$(dirname "${0}")
+    LOCAL_PATH=$(readlink -f "$SCRIPT_DIR")
+    . "${LOCAL_PATH}"/"${RELATIVE_PATH}"/common-functions.sh
+fi
+IMG_DIR="$1"
+if [[ -z "$IMG_DIR" ]]; then
+    IMG_DIR="./images"
+fi
+echo "Creating ${IMG_DIR}"
+if [[ ! -d "${IMG_DIR}" ]]; then
+    mkdir -p "${IMG_DIR}"
+fi
+save_image() {
+    local name_tag=$1
+    echo "$name_tag"
+    local img_name=$(echo "${name_tag}" | tr /: __)
+    local img_path="${IMG_DIR}/${img_name}.tar"
+    if [[ ! -f "${img_path}" ]] ; then
+        echo "[DEBUG] save ${name_tag} to ${img_path}"
+        echo "${name_tag}" >> $IMG_DIR/_image_list.txt
+        retry docker -l error save -o "${img_path}" ${name_tag}
+    else
+        echo "[DEBUG] ${name_tag} already saved"
+    fi
+}
+echo "Save all images"
+line=1
+lines=$(docker images|grep -v 'IMAGE ID'|wc -l)
+while read -r image; do
+    echo "== pkg #$line of $lines =="
+    name=$(echo $image|awk '{print $1}')
+    tag=$(echo $image|awk '{print $2}')
+    save_image "$name:$tag"
+    line=$((line+1))
+done <<< "$(docker images|grep -v 'IMAGE ID'|awk '{printf("%s %s\n", $1, $2)}'|column -t)"
