使用Docker命令行 | Use the Docker command line (Engine)
使用Docker命令行
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
。为了避免必须使用sudo
该docker
命令,系统管理员可以创建一个名为的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 pull
)docker 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的特性是指定一组要优先使用的凭据助手。credsStore或auths存储和检索特定注册表的凭据时。如果设置了此属性,则二进制docker-credential-<value>将用于存储或检索特定注册表的凭据。有关更多信息,请参见资信助理员部分docker login文献资料
一旦连接到容器上,用户就会从容器中分离出来,并使用CTRL-p CTRL-q键序列。此分离键序列可使用detachKeys特性。指定<sequence>属性的值。的格式<sequence>是以逗号分隔的字母列表。-Z,或ctrl-与下列任何一项相结合:
a-z(
单个小写字母字母)
@(
at标志)
[
(左括号)
\\
(2个反斜杠)
_
(下划线)
^
(插入符号)
您的自定义适用于与您的Docker客户端一起启动的所有容器。用户可以根据每个容器覆盖您的自定义或默认密钥序列。为此,用户指定--detach-keys
带docker attach
,,,docker exec
,,,docker run
或docker 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
。所有stderr
的pty
模式都是简单的stdout
。
字符串和整数
--name=""
期望一个字符串等选项,并且它们只能被指定一次。-c=0
期望一个整数等选项,并且它们只能被指定一次。