diff --git a/language-docker.cabal b/language-docker.cabal
--- a/language-docker.cabal
+++ b/language-docker.cabal
@@ -2,10 +2,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: e09dfb596ffa0aad47ade030ba31bd3d1fc4cb6395d7abef6290649bdedff1f6
+-- hash: 62fe44c8aed9783d0a7b6fee136758ea45af0c4ad6af24b6496af43df80eb3b9
 
 name:           language-docker
-version:        6.0.2
+version:        6.0.3
 synopsis:       Dockerfile parser, pretty-printer and embedded DSL
 description:    All functions for parsing, printing and writting Dockerfiles are exported through @Language.Docker@. For more fine-grained operations look for specific modules that implement a certain functionality.
                 See the <https://github.com/hadolint/language-docker GitHub project> for the source-code and examples.
diff --git a/src/Language/Docker/Parser.hs b/src/Language/Docker/Parser.hs
--- a/src/Language/Docker/Parser.hs
+++ b/src/Language/Docker/Parser.hs
@@ -15,6 +15,7 @@
 import Data.Data
 import Data.List.NonEmpty (NonEmpty, fromList)
 import Data.Maybe (listToMaybe)
+import Data.Semigroup ((<>))
 import qualified Data.Set as S
 import Data.Text (Text)
 import qualified Data.Text as T
@@ -151,9 +152,11 @@
 
 parseRegistry :: Parser Registry
 parseRegistry = do
-    name <- someUnless "a registry name" (== '/')
+    domain <- someUnless "a domain name" (== '.')
+    void $ char '.'
+    tld <- someUnless "a TLD" (== '/')
     void $ char '/'
-    return $ Registry name
+    return $ Registry (domain <> "." <> tld)
 
 taggedImage :: Parser BaseImage
 taggedImage = do
diff --git a/src/Language/Docker/Syntax.hs b/src/Language/Docker/Syntax.hs
--- a/src/Language/Docker/Syntax.hs
+++ b/src/Language/Docker/Syntax.hs
@@ -21,12 +21,11 @@
     fromString img =
         if "/" `isInfixOf` img
             then let parts = endBy "/" img
-                 in case parts of
-                        reg:rest ->
-                            Image
-                                (Just (Registry (Text.pack reg)))
-                                (Text.pack . intercalate "/" $ rest)
-                        _ -> Image Nothing (Text.pack img)
+                 in if "." `isInfixOf` head parts
+                        then Image
+                                 (Just (Registry (Text.pack (head parts))))
+                                 (Text.pack . intercalate "/" $ tail parts)
+                        else Image Nothing (Text.pack img)
             else Image Nothing (Text.pack img)
 
 newtype Registry = Registry
diff --git a/test/Language/Docker/ParserSpec.hs b/test/Language/Docker/ParserSpec.hs
--- a/test/Language/Docker/ParserSpec.hs
+++ b/test/Language/Docker/ParserSpec.hs
@@ -47,6 +47,10 @@
                 assertAst
                 "FROM myregistry.com:5000/imagename:5.12-dev"
                 [From (TaggedImage (Image (Just "myregistry.com:5000") "imagename") "5.12-dev" Nothing)]
+            it "Not a registry if no TLD" $
+                assertAst
+                "FROM myfolder/imagename:5.12-dev"
+                [From (TaggedImage (Image Nothing "myfolder/imagename") "5.12-dev" Nothing)]
 
         describe "parse LABEL" $ do
             it "parse label" $ assertAst "LABEL foo=bar" [Label[("foo", "bar")]]
