From 557dc09d71e489790742ed8603e929edb48fb071 Mon Sep 17 00:00:00 2001
From: UserTaken <elysian@live.com>
Date: Thu, 11 Jun 2015 00:21:45 -0700
Subject: [PATCH 1/2] More run and create options

---
 plugins/docker/_docker | 90 +++++++++++++++++++++++++++++++++---------
 1 file changed, 71 insertions(+), 19 deletions(-)

diff --git a/plugins/docker/_docker b/plugins/docker/_docker
index fd459a0ca..bd494ecaa 100644
--- a/plugins/docker/_docker
+++ b/plugins/docker/_docker
@@ -36,7 +36,7 @@ __docker_images() {
 # ---------------------------
 __attach() {
     _arguments \
-        '--no-stdin[Do not attach stdin]' \
+        '--no-stdin[Do not attach STDIN]' \
         '--sig-proxy[Proxify all received signal to the process (even in non-tty mode)]'
     __docker_containers
 }
@@ -55,6 +55,7 @@ __commit() {
         '(-a,--author=)'{-a,--author=}'[Author (eg. "John Hannibal Smith <hannibal@a-team.com>"]' \
         '(-m,--message=)'{-m,--message=}'[Commit message]' \
         '--run=[Config automatically applied when the image is run.]'
+        '(-p,--pause=)'{-p,--pause=}'[Pause container during commit]' \
     __docker_containers
 }
 
@@ -62,6 +63,48 @@ __cp() {
     __docker_containers
 }
 
+__create() {
+    _arguments \
+        '(-P,--publish-all=)'{-P,--publish-all=}'[Publish all exposed ports to the host interfaces]' \
+        '(-a,--attach=)'{-a,--attach=}'[Attach to STDIN, STDOUT or STDERR]' \
+        '--add-host=[Add a custom host-to-IP mapping]' \
+        '--cap-add=[Add Linux capabilities]' \
+        '--cap-drop=[Drop Linux capabilities]' \
+        '(-c,--cpu-shares=)'{-c,--cpu-shares=}':[CPU shares (relative weight)]' \
+        '--cidfile=[Write the container ID to the file]' \
+        '--device=[Add a host device to the container]' \
+        '--dns=[Set custom dns servers]' \
+        '--dns-search=[Set custom DNS search domains]' \
+        '(-e,--env=)'{-e,--env=}'[Set environment variables]' \
+        '--env-file=[Read in a file of environment variables]' \
+        '--entrypoint=[Overwrite the default entrypoint of the image]' \
+        '--expose=[Expose a port from the container without publishing it to your host]' \
+        '(-h,--hostname=)'{-h,--hostname=}'[Container host name]' \
+        '(-i,--interactive=)'{-i,--interactive=}'[Keep STDIN open even if not attached]' \
+        '--ipc=[IPC namespace to use]' \
+        '(-l,--label=)'{-l,--label=}'[Set meta data on a container]' \
+        '--link=[Add link to another container (name:alias)]' \
+        '--log-driver=[Logging driver for the container]' \
+        '--lxc-conf=[Add custom LXC options]' \
+        '--mac-address=[Container MAC address (e.g. 92:d0:c6:0a:29:33)]' \
+        '(-m,--memory=)'{-m,--memory=}'[Memory limit (format: <number><optional unit>, where unit = b, k, m or g)]' \
+        '--net=[Set the Network mode for the container]' \
+        '--name=[Assign a name to the container]' \
+        '--pid=[PID namespace to use]' \
+        '(-p,--publish=)'{-p,--publish=}'[Publish a container''s port to the host (format: ip:hostPort:containerPort/protocol)]' \
+        '--privileged=[Give extended privileges to this container]' \
+        '--restart=[Restart policy to apply when a container exits]' \
+        '--security-opt=[Security Options]' \
+        '--sig-proxy=[Proxify all received signal to the process (even in non-tty mode)]' \
+        '(-t,--tty=)'{-t,--tty=}'[Allocate a pseudo-tty]' \
+        '(-u,--user=)'{-u,--user=}'[Username or UID]' \
+        '--ulimit=[Ulimit options]' \
+        '(-v,--volume=)'{-v,--volume=}'[Bind mount a volume (e.g. -v /host:/container or -v /container)]' \
+        '--volumes-from=[Mount volumes from the specified container(s)]' \
+        '(-w,--workdir=)'{-w,--workdir=}'[Working directory inside the container]'
+    __docker_images
+}
+
 __diff() {
     __docker_containers
 }
@@ -100,11 +143,6 @@ __info() {
     # no arguments
 }
 
-__insert() {
-    __docker_images
-    _arguments '*:files:_files'
-}
-
 __inspect() {
     __docker_images
     __docker_all_containers
@@ -185,28 +223,42 @@ __rmi() {
 __run() {
     _arguments \
         '(-P,--publish-all=)'{-P,--publish-all=}'[Publish all exposed ports to the host interfaces]' \
-        '(-a,--attach=)'{-a,--attach=}'[Attach to stdin, stdout or stderr.]' \
-        '(-c,--cpu-shares=)'{-c,--cpu-shares=}': CPU shares (relative weight)]' \
+        '(-a,--attach=)'{-a,--attach=}'[Attach to STDIN, STDOUT or STDERR]' \
+        '--add-host=[Add a custom host-to-IP mapping]' \
+        '--cap-add=[Add Linux capabilities]' \
+        '--cap-drop=[Drop Linux capabilities]' \
+        '(-c,--cpu-shares=)'{-c,--cpu-shares=}':[CPU shares (relative weight)]' \
         '--cidfile=[Write the container ID to the file]' \
-        '(-d,--detach=)'{-d,--detach=}'[Detached mode: Run container in the background, print new container id]' \
+        '(-d,--detach=)'{-d,--detach=}'[Run container in the background, print new container id]' \
+        '--device=[Add a host device to the container]' \
         '--dns=[Set custom dns servers]' \
+        '--dns-search=[Set custom DNS search domains]' \
         '(-e,--env=)'{-e,--env=}'[Set environment variables]' \
+        '--env-file=[Read in a file of environment variables]' \
         '--entrypoint=[Overwrite the default entrypoint of the image]' \
         '--expose=[Expose a port from the container without publishing it to your host]' \
         '(-h,--hostname=)'{-h,--hostname=}'[Container host name]' \
-        '(-i,--interactive=)'{-i,--interactive=}'[Keep stdin open even if not attached]' \
+        '(-i,--interactive=)'{-i,--interactive=}'[Keep STDIN open even if not attached]' \
+        '--ipc=[IPC namespace to use]' \
+        '(-l,--label=)'{-l,--label=}'[Set meta data on a container]' \
         '--link=[Add link to another container (name:alias)]' \
-        '--lxc-conf=[Add custom lxc options -lxc-conf="lxc.cgroup.cpuset.cpus = 0,1"]' \
+        '--log-driver=[Logging driver for the container]' \
+        '--lxc-conf=[Add custom LXC options]' \
+        '--mac-address=[Container MAC address (e.g. 92:d0:c6:0a:29:33)]' \
         '(-m,--memory=)'{-m,--memory=}'[Memory limit (format: <number><optional unit>, where unit = b, k, m or g)]' \
-        '(-n,--networking=)'{-n,--networking=}'[Enable networking for this container]' \
+        '--net=[Set the Network mode for the container]' \
         '--name=[Assign a name to the container]' \
-        '(-p,--publish=)'{-p,--publish=}'[Publish a container''s port to the host (format: ip:hostPort:containerPort | ip::containerPort | hostPort:containerPort) (use "docker port" to see the actual mapping)]' \
+        '--pid=[PID namespace to use]' \
+        '(-p,--publish=)'{-p,--publish=}'[Publish a container''s port to the host (format: ip:hostPort:containerPort/protocol)]' \
         '--privileged=[Give extended privileges to this container]' \
+        '--restart=[Restart policy to apply when a container exits]' \
         '--rm=[Automatically remove the container when it exits (incompatible with -d)]' \
+        '--security-opt=[Security Options]' \
         '--sig-proxy=[Proxify all received signal to the process (even in non-tty mode)]' \
         '(-t,--tty=)'{-t,--tty=}'[Allocate a pseudo-tty]' \
         '(-u,--user=)'{-u,--user=}'[Username or UID]' \
-        '(-v,--volume=)'{-v,--volume=}'[Bind mount a volume (e.g. from the host: -v /host:/container, from docker: -v /container)]' \
+        '--ulimit=[Ulimit options]' \
+        '(-v,--volume=)'{-v,--volume=}'[Bind mount a volume (e.g. -v /host:/container or -v /container)]' \
         '--volumes-from=[Mount volumes from the specified container(s)]' \
         '(-w,--workdir=)'{-w,--workdir=}'[Working directory inside the container]'
     __docker_images
@@ -225,8 +277,8 @@ __save() {
 
 __start() {
     _arguments \
-        '(-a,--attach=)'{-a,--attach=}'[Attach container''s stdout/stderr and forward all signals to the process]' \
-        '(-i,--interactive=)'{-i,--interactive=}'[Attach container''s stdin]'
+        '(-a,--attach=)'{-a,--attach=}'[Attach container''s STDOUT/STDERR and forward all signals to the process]' \
+        '(-i,--interactive=)'{-i,--interactive=}'[Attach container''s STDIN]'
     __docker_all_containers
 }
 
@@ -271,6 +323,7 @@ _1st_arguments=(
     "build":"Build a container from a Dockerfile"
     "commit":"Create a new image from a container's changes"
     "cp":"Copy files/folders from the containers filesystem to the host path"
+    "create":"Create new container without running it"
     "diff":"Inspect changes on a container's filesystem"
     "events":"Get real time events from the server"
     "export":"Stream the contents of a container as a tar archive"
@@ -278,7 +331,6 @@ _1st_arguments=(
     "images":"List images"
     "import":"Create a new filesystem image from the contents of a tarball"
     "info":"Display system-wide information"
-    "insert":"Insert a file in an image"
     "inspect":"Return low-level information on a container"
     "kill":"Kill a running container"
     "load":"Load an image from a tar archive"
@@ -321,6 +373,8 @@ case "$words[1]" in
         __commit ;;
     cp)
         __cp ;;
+    create)
+        __create ;;
     diff)
         __diff ;;
     events)
@@ -335,8 +389,6 @@ case "$words[1]" in
         __import ;;
     info)
         __info ;;
-    insert)
-        __insert ;;
     inspect)
         __inspect ;;
     kill)

From 55b1a2befe3d041b54c6aa542bd11734db31a6d5 Mon Sep 17 00:00:00 2001
From: UserTaken <UserTaken@users.noreply.github.com>
Date: Sat, 13 Jun 2015 16:30:18 -0700
Subject: [PATCH 2/2] Update _docker

---
 plugins/docker/_docker | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/plugins/docker/_docker b/plugins/docker/_docker
index bd494ecaa..25f55beca 100644
--- a/plugins/docker/_docker
+++ b/plugins/docker/_docker
@@ -52,11 +52,10 @@ __build() {
 
 __commit() {
     _arguments \
-        '(-a,--author=)'{-a,--author=}'[Author (eg. "John Hannibal Smith <hannibal@a-team.com>"]' \
+        '(-a,--author=)'{-a,--author=}'[Author (e.g. "John Hannibal Smith <hannibal@a-team.com>")]' \
+        '(-c,--change=)'{-c,--change=}'[Apply Dockerfile instruction to the created image]' \
         '(-m,--message=)'{-m,--message=}'[Commit message]' \
-        '--run=[Config automatically applied when the image is run.]'
         '(-p,--pause=)'{-p,--pause=}'[Pause container during commit]' \
-    __docker_containers
 }
 
 __cp() {
@@ -70,7 +69,8 @@ __create() {
         '--add-host=[Add a custom host-to-IP mapping]' \
         '--cap-add=[Add Linux capabilities]' \
         '--cap-drop=[Drop Linux capabilities]' \
-        '(-c,--cpu-shares=)'{-c,--cpu-shares=}':[CPU shares (relative weight)]' \
+        '--cpuset-cpus=[CPUs in which to allow execution (0-3, 0,1)]' \
+        '(-c,--cpu-shares=)'{-c,--cpu-shares=}'[CPU shares (relative weight)]' \
         '--cidfile=[Write the container ID to the file]' \
         '--device=[Add a host device to the container]' \
         '--dns=[Set custom dns servers]' \
@@ -227,7 +227,8 @@ __run() {
         '--add-host=[Add a custom host-to-IP mapping]' \
         '--cap-add=[Add Linux capabilities]' \
         '--cap-drop=[Drop Linux capabilities]' \
-        '(-c,--cpu-shares=)'{-c,--cpu-shares=}':[CPU shares (relative weight)]' \
+        '--cpuset-cpus=[CPUs in which to allow execution (0-3, 0,1)]' \
+        '(-c,--cpu-shares=)'{-c,--cpu-shares=}'[CPU shares (relative weight)]' \
         '--cidfile=[Write the container ID to the file]' \
         '(-d,--detach=)'{-d,--detach=}'[Run container in the background, print new container id]' \
         '--device=[Add a host device to the container]' \