Browse Source

Merge pull request #7106 from vieux/logout

Add logout command
Victor Vieux 11 năm trước cách đây
mục cha
commit
9b3c0e65da

+ 28 - 1
api/client/commands.go

@@ -67,7 +67,8 @@ func (cli *DockerCli) CmdHelp(args ...string) error {
 		{"inspect", "Return low-level information on a container"},
 		{"kill", "Kill a running container"},
 		{"load", "Load an image from a tar archive"},
-		{"login", "Register or log in to the Docker registry server"},
+		{"login", "Register or log in to a Docker registry server"},
+		{"logout", "Log out from a Docker registry server"},
 		{"logs", "Fetch the logs of a container"},
 		{"port", "Lookup the public-facing port that is NAT-ed to PRIVATE_PORT"},
 		{"pause", "Pause all processes within a container"},
@@ -353,6 +354,32 @@ func (cli *DockerCli) CmdLogin(args ...string) error {
 	return nil
 }
 
+// log out from a Docker registry
+func (cli *DockerCli) CmdLogout(args ...string) error {
+	cmd := cli.Subcmd("logout", "[SERVER]", "Log out from a Docker registry, if no server is specified \""+registry.IndexServerAddress()+"\" is the default.")
+
+	if err := cmd.Parse(args); err != nil {
+		return nil
+	}
+	serverAddress := registry.IndexServerAddress()
+	if len(cmd.Args()) > 0 {
+		serverAddress = cmd.Arg(0)
+	}
+
+	cli.LoadConfigFile()
+	if _, ok := cli.configFile.Configs[serverAddress]; !ok {
+		fmt.Fprintf(cli.out, "Not logged in to %s\n", serverAddress)
+	} else {
+		fmt.Fprintf(cli.out, "Remove login credentials for %s\n", serverAddress)
+		delete(cli.configFile.Configs, serverAddress)
+
+		if err := registry.SaveConfig(cli.configFile); err != nil {
+			return fmt.Errorf("Failed to save docker config: %v", err)
+		}
+	}
+	return nil
+}
+
 // 'docker wait': block until a container stops
 func (cli *DockerCli) CmdWait(args ...string) error {
 	cmd := cli.Subcmd("wait", "CONTAINER [CONTAINER...]", "Block until a container stops, then print its exit code.")

+ 23 - 0
docs/man/docker-logout.1.md

@@ -0,0 +1,23 @@
+% DOCKER(1) Docker User Manuals
+% Daniel, Dao Quang Minh
+% JUNE 2014
+# NAME
+docker-logout - Log out from a Docker registry
+
+# SYNOPSIS
+**docker logout** [SERVER]
+
+# DESCRIPTION
+Log the user out from a Docker registry, if no server is
+specified "https://index.docker.io/v1/" is the default. If you want to
+log out from a private registry you can specify this by adding the server name.
+
+# EXAMPLE
+
+## Log out from a local registry
+
+    # docker logout localhost:8080
+
+# HISTORY
+June 2014, Originally compiled by Daniel, Dao Quang Minh (daniel at nitrous dot io)
+

+ 3 - 0
docs/man/docker.1.md

@@ -124,6 +124,9 @@ inside it)
 **docker-login(1)**
   Register or Login to a Docker registry server
 
+**docker-logout(1)**
+  Log the user out of a Docker registry server
+
 **docker-logs(1)**
   Fetch the logs of a container
 

+ 9 - 0
docs/sources/reference/commandline/cli.md

@@ -732,6 +732,15 @@ specify this by adding the server name.
     example:
     $ docker login localhost:8080
 
+## logout
+
+    Usage: docker logout [SERVER]
+
+    Log out from a Docker registry, if no server is specified "https://index.docker.io/v1/" is the default.
+
+    example:
+    $ docker logout localhost:8080
+
 ## logs
 
     Usage: docker logs CONTAINER