| 2002 | } |
| 2003 | |
| 2004 | func loadPortByInspect(id string, client *client.Client) ([]container.Port, error) { |
| 2005 | containerItem, err := client.ContainerInspect(context.Background(), id) |
| 2006 | if err != nil { |
| 2007 | return nil, err |
| 2008 | } |
| 2009 | var itemPorts []container.Port |
| 2010 | for key, val := range containerItem.ContainerJSONBase.HostConfig.PortBindings { |
| 2011 | if !strings.Contains(string(key), "/") { |
| 2012 | continue |
| 2013 | } |
| 2014 | item := strings.Split(string(key), "/") |
| 2015 | itemPort, _ := strconv.ParseUint(item[0], 10, 16) |
| 2016 | |
| 2017 | for _, itemVal := range val { |
| 2018 | publicPort, _ := strconv.ParseUint(itemVal.HostPort, 10, 16) |
| 2019 | itemPorts = append(itemPorts, container.Port{PrivatePort: uint16(itemPort), Type: item[1], PublicPort: uint16(publicPort), IP: itemVal.HostIP}) |
| 2020 | } |
| 2021 | } |
| 2022 | return itemPorts, nil |
| 2023 | } |
| 2024 | func transPortToStr(ports []container.Port) []string { |
| 2025 | var ( |
| 2026 | ipv4Ports []container.Port |