فهرست منبع

Merge pull request #2460 from SvenDowideit/2294-use-repo-colon-tag-everywhere

covert docker (commit|import|tag) to use REPOSITORY[:TAG]
Andy Rothfusz 11 سال پیش
والد
کامیت
962a66cd36
2فایلهای تغییر یافته به همراه39 افزوده شده و 16 حذف شده
  1. 12 9
      commands.go
  2. 27 7
      docs/sources/commandline/cli.rst

+ 12 - 9
commands.go

@@ -904,7 +904,7 @@ func (cli *DockerCli) CmdKill(args ...string) error {
 }
 }
 
 
 func (cli *DockerCli) CmdImport(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 {
 	if err := cmd.Parse(args); err != nil {
 		return nil
 		return nil
@@ -913,7 +913,8 @@ func (cli *DockerCli) CmdImport(args ...string) error {
 		cmd.Usage()
 		cmd.Usage()
 		return nil
 		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 := url.Values{}
 	v.Set("repo", repository)
 	v.Set("repo", repository)
 	v.Set("tag", tag)
 	v.Set("tag", tag)
@@ -1230,14 +1231,16 @@ func (cli *DockerCli) CmdPs(args ...string) error {
 }
 }
 
 
 func (cli *DockerCli) CmdCommit(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")
 	flComment := cmd.String("m", "", "Commit message")
 	flAuthor := cmd.String("author", "", "Author (eg. \"John Hannibal Smith <hannibal@a-team.com>\"")
 	flAuthor := cmd.String("author", "", "Author (eg. \"John Hannibal Smith <hannibal@a-team.com>\"")
 	flConfig := cmd.String("run", "", "Config automatically applied when the image is run. "+`(ex: {"Cmd": ["cat", "/world"], "PortSpecs": ["22"]}')`)
 	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 {
 	if err := cmd.Parse(args); err != nil {
 		return 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 == "" {
 	if name == "" {
 		cmd.Usage()
 		cmd.Usage()
 		return nil
 		return nil
@@ -1532,7 +1535,7 @@ func (opts PathOpts) Set(val string) error {
 }
 }
 
 
 func (cli *DockerCli) CmdTag(args ...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")
 	force := cmd.Bool("f", false, "Force")
 	if err := cmd.Parse(args); err != nil {
 	if err := cmd.Parse(args); err != nil {
 		return nil
 		return nil
@@ -1543,10 +1546,10 @@ func (cli *DockerCli) CmdTag(args ...string) error {
 	}
 	}
 
 
 	v := url.Values{}
 	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 {
 	if *force {
 		v.Set("force", "1")
 		v.Set("force", "1")

+ 27 - 7
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
 mode because the absence of the context provides no source files to
 copy to the container.
 copy to the container.
 
 
-
 .. code-block:: bash
 .. code-block:: bash
 
 
     sudo docker build github.com/creack/docker-firefox
     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
     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`.
       -run="": Configuration to be applied when the image is launched with `docker run`.
                (ex: '{"Cmd": ["cat", "/world"], "PortSpecs": ["22"]}')
                (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
     Create a new filesystem image from the contents of a tarball
 
 
@@ -333,14 +351,16 @@ Examples
 Import from a remote location
 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 from a local file
 ........................
 ........................
 
 
 Import to docker via pipe and standard in
 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
 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
     Tag an image into a repository