diff --git a/docs/openeuler.md b/docs/openeuler.md
index 41f368655a6eea273fd8589d0bec0ab29e488f67..c585d37d2f03997d214a35faed7b68bc26887f20 100644
--- a/docs/openeuler.md
+++ b/docs/openeuler.md
@@ -1,6 +1,6 @@
 # OpenEuler
 
-[OpenEuler](https://www.openeuler.org/en/) Linux currently only supports the containerd runtime.
+[OpenEuler](https://www.openeuler.org/en/) Linux is supported with docker and containerd runtimes.
 
 **Note:** that OpenEuler Linux is not currently covered in kubespray CI and
 support for it is currently considered experimental.
diff --git a/roles/container-engine/docker/tasks/main.yml b/roles/container-engine/docker/tasks/main.yml
index 24d39b8ff76c4e7876981a3ee51f1fc1b42e8e43..ae7b574d493214aa620694ef76ca7c8197679bbb 100644
--- a/roles/container-engine/docker/tasks/main.yml
+++ b/roles/container-engine/docker/tasks/main.yml
@@ -11,6 +11,13 @@
   set_fact:
     is_ostree: "{{ ostree.stat.exists }}"
 
+- name: set docker_version for openEuler
+  set_fact:
+    docker_version: '19.03'
+  when: ansible_distribution == "openEuler"
+  tags:
+    - facts
+
 - name: gather os specific variables
   include_vars: "{{ item }}"
   with_first_found:
diff --git a/roles/kubernetes/preinstall/tasks/0040-set_facts.yml b/roles/kubernetes/preinstall/tasks/0040-set_facts.yml
index 54aa5b6dccca4cc27868342f6084a6e32b8cbb3d..d9e010162931c43647e78efccb67a4f93b36a3d9 100644
--- a/roles/kubernetes/preinstall/tasks/0040-set_facts.yml
+++ b/roles/kubernetes/preinstall/tasks/0040-set_facts.yml
@@ -6,11 +6,11 @@
   tags:
     - facts
 
-- name: Set os_family fact for Kylin Linux Advanced Server
+- name: Set os_family fact for Kylin Linux Advanced Server and openEuler
   set_fact:
     ansible_os_family: "RedHat"
     ansible_distribution_major_version: "8"
-  when: ansible_distribution == "Kylin Linux Advanced Server"
+  when: ansible_distribution in ["Kylin Linux Advanced Server", "openEuler"]
   tags:
     - facts