diff --git a/Test/Hspec/Server/ServerType.hs b/Test/Hspec/Server/ServerType.hs
--- a/Test/Hspec/Server/ServerType.hs
+++ b/Test/Hspec/Server/ServerType.hs
@@ -74,3 +74,18 @@
     hClose handle
     readProcessWithExitCode "ssh" (["-F",file,stName d,c]++arg) i
 
+data Docker = Docker {
+   dContainerId :: String
+ , dOS :: !(Maybe ServerOS)
+} deriving (Show,Eq)
+
+docker :: String ->  Docker
+docker containerid = Docker containerid Nothing
+
+instance ServerType Docker where
+  stSetup a = do
+    os' <- detectOS a
+    return $ a {dOS = os'}
+  stOS = dOS
+  stName = dContainerId
+  stCmd d c arg i = readProcessWithExitCode "docker" (["exec",stName d,c]++arg) i
diff --git a/hspec-server.cabal b/hspec-server.cabal
--- a/hspec-server.cabal
+++ b/hspec-server.cabal
@@ -2,8 +2,8 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                hspec-server
-version:             0.3.1
-synopsis:            Test Framework for Server's status
+version:             0.3.2
+synopsis:            Test Framework for checking server's status
 description:         Hspec-Server is test framework for checking server's status.
                      It is inspired by the Ruby library ServerSpec.
 license:             BSD3
@@ -44,7 +44,7 @@
 test-suite test
     type:              exitcode-stdio-1.0
     main-is:           test.hs
-    hs-source-dirs:    test,dist/build/autogen
+    hs-source-dirs:    tests,dist/build/autogen
     ghc-options:       -Wall
 
     build-depends: base
diff --git a/test/test.hs b/test/test.hs
deleted file mode 100644
--- a/test/test.hs
+++ /dev/null
@@ -1,23 +0,0 @@
-import Data.Monoid
-import Test.Hspec
-import Test.Hspec.Server
-import Test.Hspec.Contrib.Retry
-import Control.Monad.IO.Class
-
-main :: IO ()
-main = hspec $ do
-    describe "hoge" $ with localhost $ do
-      it "package test" $ do
-        os <- getServerOS
-        liftIO $ os `shouldBe` (Just $ Ubuntu "12.04")
-      it "package test" $ do
-        package "zookeeper" @>= Installed
-      it "port test" $ do
-        port 2181 @>= Listening
-      it "service test" $ do
-        service "zookeeper" @>= Running
-      it "command test" $ do
-        command "echo" ["hoge"] [] @>=  Exit 0 <> Stdout "hoge\n"
-      it "retry test" $ do
-        retryWith 10 $
-          command "ls" [] [] @>= Exit 0
diff --git a/tests/test.hs b/tests/test.hs
new file mode 100644
--- /dev/null
+++ b/tests/test.hs
@@ -0,0 +1,23 @@
+import Data.Monoid
+import Test.Hspec
+import Test.Hspec.Server
+import Test.Hspec.Contrib.Retry
+import Control.Monad.IO.Class
+
+main :: IO ()
+main = hspec $ do
+    describe "hoge" $ with localhost $ do
+      it "package test" $ do
+        os <- getServerOS
+        liftIO $ os `shouldBe` (Just $ Ubuntu "12.04")
+      it "package test" $ do
+        package "zookeeper" @>= Installed
+      it "port test" $ do
+        port 2181 @>= Listening
+      it "service test" $ do
+        service "zookeeper" @>= Running
+      it "command test" $ do
+        command "echo" ["hoge"] [] @>=  Exit 0 <> Stdout "hoge\n"
+      it "retry test" $ do
+        retryWith 10 $
+          command "ls" [] [] @>= Exit 0
