@@ -0,0 +1,20 @@
1+import Docker.Client
2+
3+runNginxContainer :: IO ContainerID
4+runNginxContainer = runDockerT (defaultClientOpts, defaultHttpHandler) $ do
5+ let pb = PortBinding 80 TCP [HostPort "0.0.0.0" 8000]
6+ let myCreateOpts = addPortBinding (defaultCreateOpts "nginx:latest") pb
7+ cid <- createContainer myCreateOpts
8+ case cid of
9+ Left err -> error $ show err
10+ Right i -> do
11+ _ <- startContainer defaultStartOpts i
12+ return i
13+
14+stopNginxContainer :: ContainerID -> IO ()
15+stopNginxContainer cid = runDockerT (defaultClientOpts, defaultHttpHandler) $ do
16+ r <- stopContainer DefaultTimeout cid
17+ case r of
18+ Left err -> error "I failed to stop the container"
19+ Right _ -> return ()
20+