非常教程

Docker 17参考手册

引擎: CLI | Engine: CLI

使用Docker命令行 | Use the Docker command line (Engine)

docker

若要列出可用命令,请运行docker没有参数或执行docker help*

$ docker
Usage: docker [OPTIONS] COMMAND [ARG...]
       docker [ --help | -v | --version ]

A self-sufficient runtime for containers.

Options:
      --config string      Location of client config files (default "/root/.docker")
  -D, --debug              Enable debug mode
      --help               Print usage
  -H, --host value         Daemon socket(s) to connect to (default [])
  -l, --log-level string   Set the logging level ("debug"|"info"|"warn"|"error"|"fatal") (default "info")
      --tls                Use TLS; implied by --tlsverify
      --tlscacert string   Trust certs signed only by this CA (default "/root/.docker/ca.pem")
      --tlscert string     Path to TLS certificate file (default "/root/.docker/cert.pem")
      --tlskey string      Path to TLS key file (default "/root/.docker/key.pem")
      --tlsverify          Use TLS and verify the remote
  -v, --version            Print version information and quit

Commands:
    attach    Attach to a running container
    # […]

描述

根据您的Docker系统配置,可能需要使用前面的每个docker命令sudo。为了避免必须使用sudodocker命令,系统管理员可以创建一个名为的Unix组docker并向其添加用户。

有关安装Docker或sudo配置的更多信息,请参阅适用于您的操作系统的安装说明。

环境变量

为了便于参考,docker命令行支持以下环境变量列表:

  • DOCKER_API_VERSION要使用的API版本 (例如 1.19)。
  • DOCKER_CONFIG客户端配置文件的位置。
  • DOCKER_CERT_PATH身份验证密钥的位置。
  • DOCKER_DRIVER要使用的图形驱动程序。
  • DOCKER_HOST要连接到的守护进程套接字。
  • DOCKER_NOWARN_KERNEL_VERSION防止您的Linux内核不适合Docker的警告。
  • DOCKER_RAMDISK 如果设置这将禁用'pivot_root'。
  • DOCKER_TLS_VERIFY 当设置Docker使用TLS并验证远程。
  • DOCKER_CONTENT_TRUST设置Docker时使用公证人签名和验证图像。等于--disable-content-trust=false构建,创建,拉,推,run。
  • DOCKER_CONTENT_TRUST_SERVER要使用的公证服务器的URL。这默认为与注册表相同的URL。
  • DOCKER_HIDE_LEGACY_COMMANDS设置后,Docker会在输出中隐藏“legacy”顶级命令(如docker rm,和docker pulldocker help,并且仅打印Management commands每个对象类型(例如,docker container)。这可能会成为未来版本中的默认值,此时会删除此环境变量。
  • DOCKER_TMPDIR临时码头文件的位置。

因为Docker是使用GO开发的,所以您也可以使用GO运行时使用的任何环境变量。特别是,你可能会发现这些有用的:

  • HTTP_PROXY
  • HTTPS_PROXY
  • NO_PROXY

这些Go环境变量不区分大小写。见GO规格有关这些变量的详细信息。

配置文件

默认情况下,Docker命令行将其配置文件存储在目录中调用.docker$HOME目录中。但是,您可以通过DOCKER_CONFIG环境变量或--config命令行选项指定不同的位置。如果两者都指定,则该--config选项将覆盖DOCKER_CONFIG环境变量。例如:

docker --config ~/testconfigs/ ps

指示Docker ~/testconfigs/在运行该ps命令时使用目录中的配置文件。

Docker管理配置目录中的大部分文件,不应修改它们。但是,您可以修改config.json文件以控制docker命令行为的某些方面。

当前,您可以修改docker使用环境变量或命令行选项的命令行为。您还可以在config.json来修改一些相同的行为。在使用这些机制时,您必须记住它们之间的优先级顺序。命令行选项覆盖环境变量和环境变量,覆盖您在config.json档案。

config.json文件存储了几个属性的JSON编码:

HttpHeaders属性指定一组标题,以包含从Docker客户端发送到守护程序的所有消息。Docker不会试图解释或理解这些头文件; 它只是将它们放入消息中。Docker不允许这些头文件改变它自己设置的头文件。

该属性psFormat指定docker ps输出的默认格式。当这个--format标志没有被提供时docker ps,Docker的客户端使用这个属性。如果未设置此属性,则客户端将回到默认表格格式。有关支持的格式化指令的列表,请参阅文档中的格式部分docker ps

imagesFormat的特性是默认格式。docker images输出。当--format标志没有提供docker images命令,Docker的客户端使用此属性。如果未设置此属性,则客户端将返回到默认表格式。有关受支持的格式化指令的列表,请参见格式化部分docker images文献资料

pluginsFormat的特性是指定默认格式。docker plugin ls输出。当--format标志没有提供docker plugin ls命令,Docker的客户端使用此属性。如果未设置此属性,则客户端将返回到默认表格式。有关受支持的格式化指令的列表,请参见格式化部分docker plugin ls文献资料

servicesFormat的特性是指定默认格式。docker service ls输出。当--format标志没有提供docker service ls命令,Docker的客户端使用此属性。如果未设置此属性,则客户端将返回到默认的json格式。有关受支持的格式化指令的列表,请参见格式化部分docker service ls文献资料

serviceInspectFormat的特性是指定默认格式。docker service inspect输出。当--format标志没有提供docker service inspect命令,Docker的客户端使用此属性。如果未设置此属性,则客户端将返回到默认的json格式。有关受支持的格式化指令的列表,请参见格式化部分docker service inspect文献资料

statsFormat的特性是指定默认格式。docker stats输出。当--format标志没有提供docker stats命令,Docker的客户端使用此属性。如果未设置此属性,则客户端将返回到默认表格式。有关支持的格式指令列表,请参见格式化部分docker stats文献资料

secretFormat的特性是指定默认格式。docker secret ls输出。当--format标志没有提供docker secret ls命令,Docker的客户端使用此属性。如果未设置此属性,则客户端将返回到默认表格式。有关支持的格式指令列表,请参见格式化部分docker secret ls文献资料

nodesFormat的特性是指定默认格式。docker node ls输出。当--format标志没有提供docker node ls命令,Docker的客户端使用nodesFormat.如果nodesFormat未设置时,客户端将使用默认表格式。有关受支持的格式化指令的列表,请参见格式化部分docker node ls文献资料

configFormat的特性是指定默认格式。docker config ls输出。当--format标志没有提供docker config ls命令,Docker的客户端使用此属性。如果未设置此属性,则客户端将返回到默认表格式。有关支持的格式指令列表,请参见格式化部分docker config ls文献资料

credsStore的特性是指定外部二进制文件作为默认凭据存储。设置此属性时,docker login指定的二进制文件中存储凭据。docker-credential-<value>$PATH如果未设置此属性,则凭据将存储在auths属性的配置。有关更多信息,请参见凭证存储部分docker login文献资料

credHelpers的特性是指定一组要优先使用的凭据助手。credsStoreauths存储和检索特定注册表的凭据时。如果设置了此属性,则二进制docker-credential-<value>将用于存储或检索特定注册表的凭据。有关更多信息,请参见资信助理员部分docker login文献资料

一旦连接到容器上,用户就会从容器中分离出来,并使用CTRL-p CTRL-q键序列。此分离键序列可使用detachKeys特性。指定<sequence>属性的值。的格式<sequence>是以逗号分隔的字母列表。-Z,或ctrl-与下列任何一项相结合:

  • a-z(单个小写字母字母)
  • @(at标志)
  • [(左括号)
  • \\(2个反斜杠)
  • _(下划线)
  • ^(插入符号)

您的自定义适用于与您的Docker客户端一起启动的所有容器。用户可以根据每个容器覆盖您的自定义或默认密钥序列。为此,用户指定--detach-keysdocker attach,,,docker exec,,,docker rundocker start命令。

以下是一个示例config.json档案:

{
  "HttpHeaders": {
    "MyHeader": "MyValue"
  },
  "psFormat": "table {{.ID}}\\t{{.Image}}\\t{{.Command}}\\t{{.Labels}}",
  "imagesFormat": "table {{.ID}}\\t{{.Repository}}\\t{{.Tag}}\\t{{.CreatedAt}}",
  "pluginsFormat": "table {{.ID}}\t{{.Name}}\t{{.Enabled}}",
  "statsFormat": "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}",
  "servicesFormat": "table {{.ID}}\t{{.Name}}\t{{.Mode}}",
  "secretFormat": "table {{.ID}}\t{{.Name}}\t{{.CreatedAt}}\t{{.UpdatedAt}}",
  "configFormat": "table {{.ID}}\t{{.Name}}\t{{.CreatedAt}}\t{{.UpdatedAt}}",
  "serviceInspectFormat": "pretty",
  "nodesFormat": "table {{.ID}}\t{{.Hostname}}\t{{.Availability}}",
  "detachKeys": "ctrl-e,e",
  "credsStore": "secretservice",
  "credHelpers": {
    "awesomereg.example.org": "hip-star",
    "unicorn.example.com": "vcbait"
  }
}

公证

如果使用自己的公证服务器和自签名证书或内部证书颁发机构,则需要将证书放在tls/<registry_url>/ca.crtdocker config目录中。

或者,您可以通过将证书添加到系统的根证书颁发机构列表中来全局信任该证书。

实例

显示帮助文本

要列出任何命令的帮助,只需执行该命令,然后是--help选择。

$ docker run --help

Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

Run a command in a new container

Options:
      --add-host value             Add a custom host-to-IP mapping (host:ip) (default [])
  -a, --attach value               Attach to STDIN, STDOUT or STDERR (default [])
...

选项类型

单字符命令行选项可以组合,所以不需要输入docker run -i -t --name test busybox sh,您可以编写docker run -it --name test busybox sh

布尔型

布尔选项采取的形式-d=false。如果您指定该标志,则在帮助文本中看到的值是设置的默认值。如果您指定一个没有值的布尔标志,则会将该标志设置为true,而不考虑默认值。

例如,运行docker run -d会将值设置为true,所以您的容器将以 “分离”模式在后台运行。

默认为true(例如docker build --rm=true)的选项只能通过明确设置为非默认值来设置false

$ docker build --rm=false .

您可以-a=[]在单个命令行中多次指定选项,例如在以下命令中:

$ docker run -a stdin -a stdout -i -t ubuntu /bin/bash

$ docker run -a stdin -a stdout -a stderr ubuntu /bin/ls

有时,多个选项可以调用更复杂的值字符串,如下所示-v

$ docker run -v /host:/container example/mysql

注意:由于实施中的限制,不要一起使用-t-a stderr选项pty。所有stderrpty模式都是简单的stdout

字符串和整数

--name=""期望一个字符串等选项,并且它们只能被指定一次。-c=0期望一个整数等选项,并且它们只能被指定一次。

Docker,Docker文件,CIL,命令行

引擎: CLI | Engine: CLI相关

1.守护进程CLI参考(dockerd)(引擎) | Daemon CLI reference (dockerd) (Engine)
2.docker
3.docker attach
4.docker build
5.docker checkpoint
6.docker checkpoint create
7.docker checkpoint ls
8.docker checkpoint rm
9.docker commit
10.docker config
11.docker config create
12.docker config inspect
13.docker config ls
14.docker config rm
15.docker container
16.docker container attach
17.docker container commit
18.docker container cp
19.docker container create
20.docker container diff
21.docker container exec
22.docker container export
23.docker container inspect
24.docker container kill
25.docker container logs
26.docker container ls
27.docker container pause
28.docker container port
29.docker container prune
30.docker container rename
31.docker container restart
32.docker container rm
33.docker container run
34.docker container start
35.docker container stats
36.docker container stop
37.docker container top
38.docker container unpause
39.docker container update
40.docker container wait
41.docker cp
42.docker create
43.docker deploy
44.docker diff
45.docker events
46.docker exec
47.docker export
48.docker history
49.docker image
50.docker image build
51.docker image history
52.docker image import
53.docker image inspect
54.docker image load
55.docker image ls
56.docker image prune
57.docker image pull
58.docker image push
59.docker image rm
60.docker image save
61.docker image tag
62.docker images
63.docker import
64.docker info
65.docker inspect
66.docker kill
67.docker load
68.docker login
69.docker logout
70.docker logs
71.docker network
72.docker network connect
73.docker network create
74.docker network disconnect
75.docker network inspect
76.docker network ls
77.docker network prune
78.docker network rm
79.docker node
80.docker node demote
81.docker node inspect
82.docker node ls
83.docker node promote
84.docker node ps
85.docker node rm
86.docker node update
87.docker pause
88.docker plugin
89.docker plugin create
90.docker plugin disable
91.docker plugin enable
92.docker plugin inspect
93.docker plugin install
94.docker plugin ls
95.docker plugin push
96.docker plugin rm
97.docker plugin set
98.docker plugin upgrade
99.docker port
100.docker ps
Docker 17

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

主页 https://docker.com/
源码 https://github.com/docker/docker
版本 17
发布版本 17.06