diff --git a/cmd/podman/compose.go b/cmd/podman/compose.go
index 1dde686a46..d91e0ddc31 100644
--- a/cmd/podman/compose.go
+++ b/cmd/podman/compose.go
@@ -40,6 +40,10 @@ If you want to change the default behavior or have a custom installation path fo
 	Annotations:        map[string]string{registry.ParentNSRequired: ""}, // don't join user NS for SSH to work correctly
 }
 
+const (
+	pipePrefix = "npipe:////./pipe/"
+)
+
 func init() {
 	// NOTE: we need to fully disable flag parsing and manually parse the
 	// flags in composeMain. cobra's FParseErrWhitelist will strip off
@@ -184,12 +188,18 @@ func composeDockerHost() (string, error) {
 		if err != nil {
 			return "", fmt.Errorf("inspecting machine: %w", err)
 		}
-		if info.ConnectionInfo.PodmanSocket == nil {
-			return "", errors.New("socket of machine is not set")
-		}
 		if info.State != machine.Running {
 			return "", fmt.Errorf("machine %s is not running but in state %s", item.Name, info.State)
 		}
+		if item.VMType == "wsl" {
+			if info.ConnectionInfo.PodmanPipe == nil {
+				return "", errors.New("pipe of machine is not set")
+			}
+			return strings.Replace(info.ConnectionInfo.PodmanPipe.Path, `\\.\pipe\`, pipePrefix, 1), nil
+		}
+		if info.ConnectionInfo.PodmanSocket == nil {
+			return "", errors.New("socket of machine is not set")
+		}
 		return "unix://" + info.ConnectionInfo.PodmanSocket.Path, nil
 	}