小工具知识网

当前位置: 首页 > 行业知识 > go docker sdk 使用 第二章

行业知识

go docker sdk 使用 第二章

2026-11-15 06:41:14 来源:互联网转载

go docker sdk 使用 第二章

���文以zookeeper镜像做示范

容器端口映射

package mainimport ("context""log""os""os/signal""syscall""github.com/docker/docker/api/types/container""github.com/docker/docker/api/types/network""github.com/docker/docker/client""github.com/docker/go-connections/nat")func main() {cli, err := client.NewClientWithOpts(client.WithVersion("1.41"))if err != nil {log.Fatalln(err)}portinfo, _ := nat.NewPort("tcp", "2181")//指明协议端口,也可以不用他给的函数,直接写 "2181/tcp" 端口号/协议resp, err := cli.ContainerCreate(context.Background(), &container.Config{Image: "zookeeper",}, &container.HostConfig{PortBindings: nat.PortMap{portinfo: []nat.PortBinding{nat.PortBinding{HostPort: "2182"}}},//映射到宿主机0.0.0.0:2182 区别于2181,这里方便演示时区别容器端口和映射端口}, &network.NetworkingConfig{}, nil, "zookeeper2")if err != nil {log.Fatalln(err)}err = cli.ContainerStart(context.Background(), resp.ID, container.StartOptions{})if err != nil {log.Fatalln(err)}ch := make(chan os.Signal, 1)signal.Notify(ch, syscall.SIGINT, syscall.SIGTERM)})if err2 != nil {log.Fatalln("stop error", err2)}cli.Close()}

上一篇:pop邮箱怎么设置服务器?

下一篇:方舟手游怎么保留服务器?