-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.go
70 lines (59 loc) · 1.6 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
package main
import (
"bufio"
"fmt"
"net"
"strconv"
)
func main() {
//api := docker.NewAPI()
// list, _ := api.ContainerList()
// for _, ele := range *list {
// fmt.Printf("%s-%s-%s-%v\n", ele.GetID(), ele.Names, ele.GetImageID(), ele.Ports)
// }
body := `
{
"Image": "mysql:latest",
"ExposedPorts": {
"3306/tcp": {},
"3307/tcp": {},
"3308/tcp": {}
},
"Env":["MYSQL_ROOT_PASSWORD=my-secret-pw"],
"PortBindings": {
"3306/tcp": [
{ "HostPort": "6009" },
{ "HostPort": "6001" }
],
"3307/tcp": [
{ "HostPort": "6000" }
],
"3308/tcp": [
{ "HostPort": "6008" }
]
}
}`
conn, _ := net.Dial("unix", "/var/run/docker.sock")
urlCmd := fmt.Sprintf("%s %s HTTP/1.0\r\n", "POST", "/containers/create?name=shzy")
//处理body
if body != "" {
urlCmd = urlCmd + "Content-Type: application/json\r\n"
urlCmd = urlCmd + "Content-Length: " + strconv.Itoa(len(body)) + "\r\n\r\n"
urlCmd = urlCmd + body
}
conn.Write([]byte(urlCmd))
status, _ := bufio.NewReader(conn).ReadString('\t')
fmt.Printf("%s\n", status)
// body := `{"Image":"jwilder/nginx-proxy:latest","ExposedPorts":{"8080/tcp":{}} }`
// conn, _ := net.Dial("unix", "/var/run/docker.sock")
// urlCmd := fmt.Sprintf("%s %s HTTP/1.0\r\n", "POST", "/containers/shzy2012/start")
// //处理body
// if body != "" {
// urlCmd = urlCmd + "Content-Type: application/json\r\n"
// urlCmd = urlCmd + "Content-Length: " + strconv.Itoa(len(body)) + "\r\n\r\n"
// urlCmd = urlCmd + body
// }
// conn.Write([]byte(urlCmd))
// status, _ := bufio.NewReader(conn).ReadString('\t')
// fmt.Printf("%s\n", status)
}