diff --git a/commands.go b/commands.go index 876f7610c8..d52114553f 100644 --- a/commands.go +++ b/commands.go @@ -904,7 +904,7 @@ func (cli *DockerCli) CmdKill(args ...string) error { } func (cli *DockerCli) CmdImport(args ...string) error { - cmd := Subcmd("import", "URL|- [REPOSITORY [TAG]]", "Create a new filesystem image from the contents of a tarball(.tar, .tar.gz, .tgz, .bzip, .tar.xz, .txz).") + cmd := Subcmd("import", "URL|- [REPOSITORY[:TAG]]", "Create a new filesystem image from the contents of a tarball(.tar, .tar.gz, .tgz, .bzip, .tar.xz, .txz).") if err := cmd.Parse(args); err != nil { return nil @@ -913,7 +913,8 @@ func (cli *DockerCli) CmdImport(args ...string) error { cmd.Usage() return nil } - src, repository, tag := cmd.Arg(0), cmd.Arg(1), cmd.Arg(2) + src := cmd.Arg(0) + repository, tag := utils.ParseRepositoryTag(cmd.Arg(1)) v := url.Values{} v.Set("repo", repository) v.Set("tag", tag) @@ -1230,14 +1231,16 @@ func (cli *DockerCli) CmdPs(args ...string) error { } func (cli *DockerCli) CmdCommit(args ...string) error { - cmd := Subcmd("commit", "[OPTIONS] CONTAINER [REPOSITORY [TAG]]", "Create a new image from a container's changes") + cmd := Subcmd("commit", "[OPTIONS] CONTAINER [REPOSITORY[:TAG]]", "Create a new image from a container's changes") flComment := cmd.String("m", "", "Commit message") flAuthor := cmd.String("author", "", "Author (eg. \"John Hannibal Smith \"") flConfig := cmd.String("run", "", "Config automatically applied when the image is run. "+`(ex: {"Cmd": ["cat", "/world"], "PortSpecs": ["22"]}')`) if err := cmd.Parse(args); err != nil { return nil } - name, repository, tag := cmd.Arg(0), cmd.Arg(1), cmd.Arg(2) + name := cmd.Arg(0) + repository, tag := utils.ParseRepositoryTag(cmd.Arg(1)) + if name == "" { cmd.Usage() return nil @@ -1532,7 +1535,7 @@ func (opts PathOpts) Set(val string) error { } func (cli *DockerCli) CmdTag(args ...string) error { - cmd := Subcmd("tag", "[OPTIONS] IMAGE REPOSITORY [TAG]", "Tag an image into a repository") + cmd := Subcmd("tag", "[OPTIONS] IMAGE REPOSITORY[:TAG]", "Tag an image into a repository") force := cmd.Bool("f", false, "Force") if err := cmd.Parse(args); err != nil { return nil @@ -1543,10 +1546,10 @@ func (cli *DockerCli) CmdTag(args ...string) error { } v := url.Values{} - v.Set("repo", cmd.Arg(1)) - if cmd.NArg() == 3 { - v.Set("tag", cmd.Arg(2)) - } + repository, tag := utils.ParseRepositoryTag(cmd.Arg(1)) + + v.Set("repo", repository) + v.Set("tag", tag) if *force { v.Set("force", "1") diff --git a/docs/sources/commandline/cli.rst b/docs/sources/commandline/cli.rst index da0c262c4a..6c2826567b 100644 --- a/docs/sources/commandline/cli.rst +++ b/docs/sources/commandline/cli.rst @@ -133,7 +133,6 @@ to the ``docker`` daemon. ``ADD`` doesn't work when running in this mode because the absence of the context provides no source files to copy to the container. - .. code-block:: bash sudo docker build github.com/creack/docker-firefox @@ -151,7 +150,7 @@ by using the ``git://`` schema. :: - Usage: docker commit [OPTIONS] CONTAINER [REPOSITORY [TAG]] + Usage: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] Create a new image from a container's changes @@ -160,7 +159,26 @@ by using the ``git://`` schema. -run="": Configuration to be applied when the image is launched with `docker run`. (ex: '{"Cmd": ["cat", "/world"], "PortSpecs": ["22"]}') -Full -run example (multiline is ok within a single quote ``'``) +Simple commit of an existing container +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. code-block:: bash + + $ docker ps + ID IMAGE COMMAND CREATED STATUS PORTS + c3f279d17e0a ubuntu:12.04 /bin/bash 7 days ago Up 25 hours + 197387f1b436 ubuntu:12.04 /bin/bash 7 days ago Up 25 hours + $ docker commit c3f279d17e0a SvenDowideit/testimage:version3 + f5283438590d + $ docker images | head + REPOSITORY TAG ID CREATED SIZE + SvenDowideit/testimage version3 f5283438590d 16 seconds ago 204.2 MB (virtual 335.7 MB) + S + +Full -run example +................. + +(multiline is ok within a single quote ``'``) :: @@ -317,7 +335,7 @@ Displaying images visually :: - Usage: docker import URL|- [REPOSITORY [TAG]] + Usage: docker import URL|- [REPOSITORY[:TAG]] Create a new filesystem image from the contents of a tarball @@ -333,14 +351,16 @@ Examples Import from a remote location ............................. -``$ sudo docker import http://example.com/exampleimage.tgz exampleimagerepo`` +This will create a new untagged image. + +``$ sudo docker import http://example.com/exampleimage.tgz`` Import from a local file ........................ Import to docker via pipe and standard in -``$ cat exampleimage.tgz | sudo docker import - exampleimagelocal`` +``$ cat exampleimage.tgz | sudo docker import - exampleimagelocal:new`` Import from a local directory ............................. @@ -719,7 +739,7 @@ The main process inside the container will receive SIGTERM, and after a grace pe :: - Usage: docker tag [OPTIONS] IMAGE REPOSITORY [TAG] + Usage: docker tag [OPTIONS] IMAGE REPOSITORY[:TAG] Tag an image into a repository