mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
docker port: lookup public-facing tcp ports for a container
This commit is contained in:
parent
791592731e
commit
410ebe379d
1 changed files with 25 additions and 0 deletions
|
@ -44,6 +44,7 @@ func (srv *Server) Help() string {
|
||||||
{"ps", "Display a list of containers"},
|
{"ps", "Display a list of containers"},
|
||||||
{"pull", "Download a tarball and create a container from it"},
|
{"pull", "Download a tarball and create a container from it"},
|
||||||
{"put", "Upload a tarball and create a container from it"},
|
{"put", "Upload a tarball and create a container from it"},
|
||||||
|
{"port", "Lookup the public-facing port which is NAT-ed to PRIVATE_PORT"},
|
||||||
{"rm", "Remove containers"},
|
{"rm", "Remove containers"},
|
||||||
{"kill", "Kill a running container"},
|
{"kill", "Kill a running container"},
|
||||||
{"wait", "Wait for the state of a container to change"},
|
{"wait", "Wait for the state of a container to change"},
|
||||||
|
@ -311,6 +312,30 @@ func (srv *Server) CmdInspect(stdin io.ReadCloser, stdout io.Writer, args ...str
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (srv *Server) CmdPort(stdin io.ReadCloser, stdout io.Writer, args ...string) error {
|
||||||
|
cmd := rcli.Subcmd(stdout, "port", "[OPTIONS] CONTAINER PRIVATE_PORT", "Lookup the public-facing port which is NAT-ed to PRIVATE_PORT")
|
||||||
|
if err := cmd.Parse(args); err != nil {
|
||||||
|
cmd.Usage()
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
if cmd.NArg() != 2 {
|
||||||
|
cmd.Usage()
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
name := cmd.Arg(0)
|
||||||
|
privatePort := cmd.Arg(1)
|
||||||
|
if container := srv.containers.Get(name); container == nil {
|
||||||
|
return errors.New("No such container: " + name)
|
||||||
|
} else {
|
||||||
|
if frontend, exists := container.NetworkSettings.PortMapping[privatePort]; !exists {
|
||||||
|
return fmt.Errorf("No private port '%s' allocated on %s", privatePort, name)
|
||||||
|
} else {
|
||||||
|
fmt.Fprintln(stdout, frontend)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// 'docker rmi NAME' removes all images with the name NAME
|
// 'docker rmi NAME' removes all images with the name NAME
|
||||||
func (srv *Server) CmdRmi(stdin io.ReadCloser, stdout io.Writer, args ...string) error {
|
func (srv *Server) CmdRmi(stdin io.ReadCloser, stdout io.Writer, args ...string) error {
|
||||||
cmd := rcli.Subcmd(stdout, "rmimage", "[OPTIONS] IMAGE", "Remove an image")
|
cmd := rcli.Subcmd(stdout, "rmimage", "[OPTIONS] IMAGE", "Remove an image")
|
||||||
|
|
Loading…
Add table
Reference in a new issue