diff --git a/project-lakitu/app-emulation/docker-cli/Manifest b/project-lakitu/app-emulation/docker-cli/Manifest
index 2b4020c..22e21a2 100644
--- a/project-lakitu/app-emulation/docker-cli/Manifest
+++ b/project-lakitu/app-emulation/docker-cli/Manifest
@@ -1 +1 @@
-DIST docker-cli-20.10.3.tar.gz 7733821 BLAKE2B ab71e6817e7fe0d7c5f8c776cb25ae7bc49b5a224c835fe833988b67dfdf562207cd0afed4710d33e8a31156bd16bdc70df13f1194e862314add069c320c4e6e SHA512 769bed3e5409f6be570ab3672bef1bea4d16d5bfaeb81af8c4b3b7cfb56732c108c5404464731c001cf94fefd77c40a142bed80c85f1b058041e187453a6b88e
+DIST docker-cli-20.10.6.tar.gz 7684541 BLAKE2B 059f80d71b4fc5b33c54dbe322030d33385739ddb0ae78890aeadfd264d19ac6f50386a1554d9056ef6bb9138dbbb7ccdabc8b39da0075d0bd3c183333273122 SHA512 6b0ed4c756418cd38f9e5d614910a5b4fc3b2bc286f7e69950e031c5c571c705d7b7ce11cb5a7e94814cbb44fd830921a568f30ef30d783ef129c050c999666b
diff --git a/project-lakitu/app-emulation/docker-cli/docker-cli-20.10.3-r1.ebuild b/project-lakitu/app-emulation/docker-cli/docker-cli-20.10.3-r1.ebuild
deleted file mode 120000
index 3106247..0000000
--- a/project-lakitu/app-emulation/docker-cli/docker-cli-20.10.3-r1.ebuild
+++ /dev/null
@@ -1 +0,0 @@
-docker-cli-20.10.3.ebuild
\ No newline at end of file
diff --git a/project-lakitu/app-emulation/docker-cli/docker-cli-20.10.6-r1.ebuild b/project-lakitu/app-emulation/docker-cli/docker-cli-20.10.6-r1.ebuild
new file mode 120000
index 0000000..50f7c9e
--- /dev/null
+++ b/project-lakitu/app-emulation/docker-cli/docker-cli-20.10.6-r1.ebuild
@@ -0,0 +1 @@
+docker-cli-20.10.6.ebuild
\ No newline at end of file
diff --git a/project-lakitu/app-emulation/docker-cli/docker-cli-20.10.3.ebuild b/project-lakitu/app-emulation/docker-cli/docker-cli-20.10.6.ebuild
similarity index 92%
rename from project-lakitu/app-emulation/docker-cli/docker-cli-20.10.3.ebuild
rename to project-lakitu/app-emulation/docker-cli/docker-cli-20.10.6.ebuild
index 57d6596..1f5be62 100644
--- a/project-lakitu/app-emulation/docker-cli/docker-cli-20.10.3.ebuild
+++ b/project-lakitu/app-emulation/docker-cli/docker-cli-20.10.6.ebuild
@@ -2,7 +2,7 @@
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
-GIT_COMMIT=48d30b5b32
+GIT_COMMIT=370c289
 EGO_PN="github.com/docker/cli"
 inherit bash-completion-r1  golang-vcs-snapshot
 
@@ -24,12 +24,6 @@
 S="${WORKDIR}/${P}/src/${EGO_PN}"
 
 
-PATCHES=(
-	# b/180931041 - patch from upstream
-	# can be removed after 20.10.4 docker version update
-	"${FILESDIR}"/docker-20.10.2-prevent-warning-if-home-is-not-set.patch
-)
-
 src_prepare() {
 	default
 	sed -i 's@dockerd\?\.exe@@g' contrib/completion/bash/docker || die
diff --git a/project-lakitu/app-emulation/docker-cli/files/docker-20.10.2-prevent-warning-if-home-is-not-set.patch b/project-lakitu/app-emulation/docker-cli/files/docker-20.10.2-prevent-warning-if-home-is-not-set.patch
deleted file mode 100644
index 400f149..0000000
--- a/project-lakitu/app-emulation/docker-cli/files/docker-20.10.2-prevent-warning-if-home-is-not-set.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-From: varsha teratipally <teratipally@google.com>
-Date: Tue, 22 Feb 2021 00:07:25 +0000
-Subject:Cherry-pick of an upstream patch
-
-From d513e46bfc8d692343a08bd88639910c5c6db54d Mon Sep 17 00:00:00 2001
-From: Sebastiaan van Stijn <github@gone.nl>
-Date: Mon, 18 Jan 2021 14:46:52 +0100
-Subject: [PATCH] cli/config: prevent warning if HOME is not set
-
-commit c2626a8270924d0cec54477fc506174cd31dc560 replaced the use of
-github.com/docker/docker/pkg/homedir with Golang's os.UserHomeDir().
-
-This change was partially reverted in 7a279af43de6650d2f36c41f9d926db7be3b3567
-to account for situations where `$HOME` is not set.
-
-In  situations where no configuration file is present in `~/.config/`, the CLI
-falls back to looking for the (deprecated) `~/.dockercfg` configuration file,
-which was still using `os.UserHomeDir()`, which produces an error/warning if
-`$HOME` is not set.
-
-This patch introduces a helper function and a global variable to get the user's
-home-directory. The global variable is used to prevent repeatedly looking up
-the user's information (which, depending on the setup can be a costly operation).
-
-Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
-(cherry picked from commit c85a37dbb472c39bc88cf707fce83fed7a644fed)
-Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
----
- cli/config/config.go      | 22 ++++++++++++++++------
- cli/config/config_test.go |  4 ++++
- 2 files changed, 20 insertions(+), 6 deletions(-)
-
-diff --git a/cli/config/config.go b/cli/config/config.go
-index 703fa30f48..98147e270a 100644
---- a/cli/config/config.go
-+++ b/cli/config/config.go
-@@ -26,15 +26,29 @@ const (
- var (
- 	initConfigDir sync.Once
- 	configDir     string
-+	homeDir       string
- )
- 
-+// resetHomeDir is used in testing to resets the "homeDir" package variable to
-+// force re-lookup of the home directory between tests.
-+func resetHomeDir() {
-+	homeDir = ""
-+}
-+
-+func getHomeDir() string {
-+	if homeDir == "" {
-+		homeDir = homedir.Get()
-+	}
-+	return homeDir
-+}
-+
- func setConfigDir() {
- 	if configDir != "" {
- 		return
- 	}
- 	configDir = os.Getenv("DOCKER_CONFIG")
- 	if configDir == "" {
--		configDir = filepath.Join(homedir.Get(), configFileDir)
-+		configDir = filepath.Join(getHomeDir(), configFileDir)
- 	}
- }
- 
-@@ -109,11 +123,7 @@ func Load(configDir string) (*configfile.ConfigFile, error) {
- 	}
- 
- 	// Can't find latest config file so check for the old one
--	home, err := os.UserHomeDir()
--	if err != nil {
--		return configFile, errors.Wrap(err, oldConfigfile)
--	}
--	filename = filepath.Join(home, oldConfigfile)
-+	filename = filepath.Join(getHomeDir(), oldConfigfile)
- 	if file, err := os.Open(filename); err == nil {
- 		defer file.Close()
- 		if err := configFile.LegacyLoadFromReader(file); err != nil {
-diff --git a/cli/config/config_test.go b/cli/config/config_test.go
-index a861d4da1e..c7787bb5d1 100644
---- a/cli/config/config_test.go
-+++ b/cli/config/config_test.go
-@@ -115,6 +115,7 @@ password`: "Invalid Auth config file",
- email`: "Invalid auth configuration file",
- 	}
- 
-+	resetHomeDir()
- 	tmpHome, err := ioutil.TempDir("", "config-test")
- 	assert.NilError(t, err)
- 	defer os.RemoveAll(tmpHome)
-@@ -131,6 +132,7 @@ email`: "Invalid auth configuration file",
- }
- 
- func TestOldValidAuth(t *testing.T) {
-+	resetHomeDir()
- 	tmpHome, err := ioutil.TempDir("", "config-test")
- 	assert.NilError(t, err)
- 	defer os.RemoveAll(tmpHome)
-@@ -165,6 +167,7 @@ func TestOldValidAuth(t *testing.T) {
- }
- 
- func TestOldJSONInvalid(t *testing.T) {
-+	resetHomeDir()
- 	tmpHome, err := ioutil.TempDir("", "config-test")
- 	assert.NilError(t, err)
- 	defer os.RemoveAll(tmpHome)
-@@ -184,6 +187,7 @@ func TestOldJSONInvalid(t *testing.T) {
- }
- 
- func TestOldJSON(t *testing.T) {
-+	resetHomeDir()
- 	tmpHome, err := ioutil.TempDir("", "config-test")
- 	assert.NilError(t, err)
- 	defer os.RemoveAll(tmpHome)
